Olá pessoal, preciso armazenar pares de objetos, mas não sei qual collection usar. Se fosse com arrays, eu poderia usar assim:
MyObject[][]pares=newMyObject[n][2];
Pensei em HashMap, mas não sei se ficaria legal, por que é para um chave e um valor, e no meu caso eu preciso armazenar 2 valores, e outra, o HashMap não permite chaves duplicadas.
Gostaria da opinião de vocês pra poder definir o que vai ser o + correto no meu caso.
Eu não sou muito fã do HashMap puro, porque normalmente preciso dos dados ordenados ou por ordem de inserção ( LinkedHashMap ) ou por ordem alfabética ( TreeMap ).
Olá!
Não conheço nada pronto na API do Java. Mas pode-se fazer uso de uma técnica de
POG(Programação orientada a gambiarra) :twisted:
Você pode utilizar, por exemplo, um TreeMap e instanciá-lo passando por parâmetro uma implementação (Você deve escrevê-la) de Comparator cujo método compare nunca retorne 0. Só não se esqueça que isso é POG… Logo, podem haver problemas de performance, de lógica, enfim… pode ser que simplesmente não funcione… ou não… :lol:
diego2005
Thingol, pelo que entendi, vou ter um TreeMap com uma chave e uma List com 2 objetos em cada posição, é isso??
No meu caso tanto faz, não vou precisar dos objetos ordenados…
Aldrin_Leal
Crie uma classe pro Valor, e defina a Collection como:
Map<Chave, MyObject[]> = new TipoMap<Chave, MyObject[]);
Porque não?
diego2005
Aldrin Leal:
Crie uma classe pro Valor, e defina a Collection como:
Map<Chave, MyObject[]> = new TipoMap<Chave, MyObject[]);
Porque não?
Então, depois que o Thingol deu a idéia, eu fiz assim:
LinkedHashMap<String,ArrayList<MyObject>>
Agora o que é melhor, com ArrayList ou com array??
T
thingol
Pergunta: você quer simplesmente armazenar pares de objetos, como (“BA”, “Bahia”), (“AC”, “Acre”) etc.? Precisa de algum mapeamento especial? Senão um simples [][] ou um ArrayList de [] seria suficiente, como o Aldrin sugeriu.
diego2005
Então, acabei de modificar aqui, e fiquei com duas opções:
ArrayList<ArrayList<MyObject>>
ou
ArrayList<MyObject[]>
Qual a melhor opção?? Ou as duas são equivalentes??
Aldrin_Leal
thingol:
Pergunta: você quer simplesmente armazenar pares de objetos, como (“BA”, “Bahia”), (“AC”, “Acre”) etc.? Precisa de algum mapeamento especial? Senão um simples [][] ou um ArrayList de [] seria suficiente, como o Aldrin sugeriu.