Map ordenado com repetição, existe?

8 respostas
bcartaxo

Preciso de uma estrutura como um Map, porém q seja ordenado e permita q os valores (não as chaves) se repitam. A única interface q achei foi SortedMap, mas ela n permite adicionar valores iguais, mas uma vez friso q preciso q os VALORES se repetiam, não as chaves, até pq chaves repetidas seria meio absurdo =PPP

Desde já agradeço.

8 Respostas

bcartaxo

Serve n, eu estava usando justamente essa implementação, mas ele não permite valores repetidos, inclusive é logo umas das primeiras linhas da descrição da TreeMap na API, ele fala q n permite values repetidos, e tive a infeliz oportunidade de confirmar isso na prática =PP

furutani

Olá acolon,

Voce deve estar enganado, TreeMap permite valores repetidos, assim como outros Map as chaves sim são unicas.

package br.eti.furutani.teste;

import java.util.Collection;
import java.util.TreeMap;

/**


 * @since 20/MAI/2007
 * @author Roberto Furutani
 * 
 */

public class Inicio {
	public static void main(String[] args) {
		TreeMap<String, String> map = new TreeMap<String, String>();
		map.put("chave_a", "valor_a");
		map.put("chave_b", "valor_a");
		map.put("chave_c", "valor_a");
		map.put("chave_d", "valor_a");

		Collection<String> col  = map.values();
		for (String s : col) {
			System.out.println(s);
		}
		
	}
}

Saida:

valor_a
valor_a
valor_a
valor_a
jPscoralicK

As chaves do Map são do tipo Set, isto é, são unívocas (não se repetem).

Os valores são do tipo Collection, isto é, podem se repetir;

[ ]

LPJava

jPscoralicK:
As chaves do Map são do tipo Set, isto é, são unívocas (não se repetem).

Os valores são do tipo Collection, isto é, podem se repetir;

[ ]

Map nao tem nada ver com Set, Map sao apenas Map nao tem relação nenhuma com Set, pois Set deriva de Collection, a unica semelhante eh que ambos nao aceita valores repetidos… mais isso nao quer q Map é do tipo Set. Se eu tiver errado tb pode me corrigir :smiley:

T

Você gostaria de algo semelhante ao multimap (que implementa isso em C++). Só que o Java não tem isso pronto na biblioteca java.util.*.

Você pode fazer uma de duas coisas:

Veja a interface Bag e SortedBag.

bcartaxo

Pessoal, muito obrigado e desculpas =PP

Aconteceram um série de coincidências q me levaram a fazewr tal pergunta, qd disse q uma SortedMap não aceitava valores repetidos é pq depois vi q tinha olhado na classe errada =P e pra complentar a coincidência, estava ocorrendo um erro no meu sistema q me levava a crer q ess comportamento realmente acontecia. Mais uam vez desculpas e obrigado =PPP

seufagner

Cara, TreeMap implementa SortedMap e funciona do jeito que voce quer.

Ah, não existe isso de não poder repetir o valor…

Pra saber mais, procura na API

[]s

seufagner

Onde diabos você leu isso? rsrs

Criado 20 de maio de 2007
Ultima resposta 20 de mai. de 2007
Respostas 8
Participantes 6