Yes, it’s a common way to do it. Here’s an excerpt from Apple’s homepage tags (US, IT):
<link rel="alternate" href="https://www.apple.com/" hreflang="en-US" />
<link rel="alternate" href="https://www.apple.com/it/" hreflang="it-IT" />
Hreflang is a suggestion, not a directive, so Google will still pick what it thinks is the best content. I would try putting the hreflang annotations on a single sitemap (here’s a good generator):
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
<url>
<loc>https://www.example.com/</loc>
<xhtml:link rel="alternate" hreflang="en-us" href="https://www.example.com/" />
<xhtml:link rel="alternate" hreflang="it-it" href="https://www.example.com/it" />
</url>
<url>
<loc>https://www.example.com/it</loc>
<xhtml:link rel="alternate" hreflang="en-us" href="https://www.example.com/" />
<xhtml:link rel="alternate" hreflang="it-it" href="https://www.example.com/it" />
</url>
</urlset>
Also, hreflang values apply at the page level—not site or folder level—and are bi-directional. Each page on your site that has an alternate language version should point to itself and the other version(s)—whether you do it through the sitemap, meta tags on each page, or HTTP headers for each page.
Guides: