The name of each cat killed by Robert Farmer, 26, was read out to him by the judge in Santa Clara Superior Court.
One of the cats showed signs of having been sexually abused, experts said.
Farmer committed the crimes in San Jose in 2015. He was found sleeping in his car in October that year with a dead cat in the centre console and chunks of fur elsewhere in the vehicle.
The cats all went missing in the Cambrian Park area of San Jose in the autumn of 2015. Several pets were found dead, two of them in rubbish bins.
The Mercury News website said that video footage from a security camera showed a young man taking a 17-year-old cat named GoGo. Residents pointed police to Farmer.
GoGo was among the cats who were never found.
Owner Miriam Petrova was at the court on Friday.
She told NBC News: "We finally can say goodbye to every cat that was involved in this tragedy."
Farmer admitted 21 felony counts of animal cruelty - killing 18 cats and wounding three - along with misdemeanour battery and being under the influence.
A letter by him, read out by his lawyer, said: "It feels like another man committed these crimes, but I know it was me. It's so hard to grasp I did this. I stole a member of their family. The fact that I was out of my mind was no excuse."
Santa Clara County Deputy District Attorney Alexandra Ellis dismissed the letter as an attempt to win leniency.
"The judge agreed with my analysis. She sentenced him to 16 years, we can only hope it is long enough," she said.
Farmer was also banned from owning or caring for a pet for 10 years after his release, and was given a restriction order keeping him away from Cambrian Park.
A man in California has been jailed for 16 years after admitting he stole and tortured cats, killing 18 of them.