Map - projeto

Pessoal, to fazendo um projeto p/ faculdade, e neste faço um cadastro de produtos, disseram-me que a melhor opção p/ isso seria utilizar a interface map, mas qual das classes que a implementam? E como faço isso possuindo categorias diferentes de produtos??
Se alguem puder ajudar, coloca um exemplo.

A interface Map é implementada pelas classes HashMap, LinkedHashMap e TreeMap (há outras classes em java.util.concurrent que implementam essa interface, mas são de uso restrito; além disso, a classe java.util.Hashtable também implementa essa interface, mas seu uso é desaconselhado.)
Normalmente eu preferiria usar um SortedMap (classe que implementa: TreeMap), que requer um Comparator para poder ordenar os elementos em ordem crescente (ou decrescente).
Para cada ordenação que você precisar, você pode criar um Comparator diferente.

Mas como funciona a implementação do SortedMap?
Quando coloquei-o apareceu <K, E> como isso funciona?

Vamos lá.
<K, E> -> generics: K é o tipo da chave (Key), e E o tipo do valor (Entry).
Por exemplo:

SortedMap<Double,Produto> produtosPorPreco = new TreeMap<Double,Produto>();
SortedMap<Long,Produto> produtosPorCodigo = new TreeMap<Long,Produto>();
SortedMap<String,Produto> produtosPorDescricao = new TreeMap<String,Produto>();

produtosPorPreco = uma lista de produtos, que está ordenada pelos preços, e pode ser acessada pelos preços. (O problema, é claro, é que 2 produtos podem ter o mesmo preço, portanto não serve um Map, que tem chave única.)

Consegui Thingol, valeu mesmo!!!