If you want to efficiently EV train, the best way is horde training. A couple of tips and notes:
– You'll want a Pokémon that knows Sweet Scent in your party. It will attract hordes 100% of the time when used in an area where you can encounter Pokémon via walking.
– If the EXP Share is turned on, the EVs gained will be shared with all Pokémon in your party. This can be useful if you want to train multiple Pokémon in, say, Defence.
– Use spread moves, preferably ones with perfect accuracy and aren't ineffective against certain Pokémon (for example, Earthquake can't hit Levitating or Flying Pokémon.)
– Horde training is only really useful for maxing out a certain stat with the full 252 EVs. For more complex spreads, Super Training is better.
– Have the Pokémon hold a power item that corresponds with the stat you want to raise, and if possible give it Pokérus. This will max out your stat in just a few hordes.
Alright, so now that that's out of the way, here are some locations where you are guaranteed to encounter only Pokémon that give off specific EVs.
Yields HP EVs
Mt. Pyre interior
Yields Attack EVs
Yield Special Attack EVs
Yields Defence EVs
Yields Special Defence EVs
Zigzagoon / Taillow / Wingull
Yield Speed EVs
While the encounter rate is not 100% for each Pokémon, together all of them give Speed EVs so in the end it doesn't really matter.
Good luck EV training!