Encryption has to be reversible. There's no point in encrypting anything if nobody can ever read it. For that to be possible, you need a unique encrypted representation for every allowable "plaintext" message.
Hashing need not be, and is almost always not reversible. Hashes are usually much shorter than the original message, making uniqueness impossible. The goals of a cryptographic hash is to make the probability of duplicates impractically small, and the creation of deliberate duplicates impractically difficult.
Hashes for table lookup algorithms don't have to be that irreversible, though, and are generally designed to be calculated very quickly. There, the problem is usually to ensure that very similar inputs produce very different outputs.