Conjuntos - [resolvido]

Boa Tarde !
Tenho um trabalho sobre conjuntos, no qual tenho que fazer a intercessão, união e subtração de conjuntos.
Ex: A = {2, 3, {6},5} e B = {2,4,{6},{7,2},9}
A U B = {2,3,4,5,{6},{7,2},9}
Bom tive a ideia de utilizar para separar em partes, o médoto StringTokenizer, e armazenar em seguida as partes em matriz, porém estou com dúvida de como comparar cada elemento, já que a união não pega os elementos repetidos, alguém poderia da uma ideia ¿¿¿¿ obrigado…

.equals ???

Um Collection que não aceita repetição. Ex: Set.

  1. O StringTokenizer não deve ser mais utilizado, conforme diz o próprio javadoc da classe:

http://download.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html

Traduzindo:

  1. Use a classe Set (como te mostrei em outro tópico). E os métodos addAll (união), retainAll (interseção), removeAll (subtração) e Collections.disjoint (disjunção).

[quote=ViniGodoy]1. O StringTokenizer não deve ser mais utilizado, conforme diz o próprio javadoc da classe:

http://download.oracle.com/javase/6/docs/api/java/util/StringTokenizer.html

Traduzindo:

  1. Use a classe Set (como te mostrei em outro tópico). E os métodos addAll (união), retainAll (interseção), removeAll (subtração) e Collections.disjoint (disjunção).[/quote]

Realmente muito boa sua dica, inclusive já estou usando, porém ainda tenho que usa a StringTokenizer para separar os elementos do conjunto, pois eu digito esses elementos direto em JTextField, seprando por virugla, justamente para usar a virgula como delimitador e conseguir dividir em partes os elementos …e depois sim utilizo Array List com suas dicas para manipular tais conjuntos…obrigado…vlw ai

E por que você não usa o método split() no lugar do StringTokenizer, como recomenda o próprio Javadoc?

Por exemplo:

[code]String teste = “Vinicius Godoy de Mendonça”;
String palavras[] = teste.split(" ");

for (String palavra : palavras) {
System.out.println(palavra);
}[/code]

Sempre siga as dicas do javadoc. Além de darem recomendações de coisas mais fáceis de usar, as classes velhas tendem a não ser tão otimizadas e nem tão corrigidas quanto as novas.

[quote=ViniGodoy]E por que você não usa o método split() no lugar do StringTokenizer, como recomenda o próprio Javadoc?

Por exemplo:

[code]String teste = “Vinicius Godoy de Mendonça”;
String palavras[] = teste.split(" ");

for (String palavra : palavras) {
System.out.println(palavra);
}[/code]

Sempre siga as dicas do javadoc. Além de darem recomendações de coisas mais fáceis de usar, as classes velhas tendem a não ser tão otimizadas e nem tão corrigidas quanto as novas.[/quote]

Valeu vou testar, é bom que já vou acostumando com esse método já que é o recomendado, pois sempre utilizei o StringTokenizer, parece ser bem simples também… Só uma dúvida esse for compara cada palavra separada ?? não entendi mt bem o uso desse for…

[quote=felipehts][quote=ViniGodoy]E por que você não usa o método split() no lugar do StringTokenizer, como recomenda o próprio Javadoc?

Por exemplo:

[code]String teste = “Vinicius Godoy de Mendonça”;
String palavras[] = teste.split(" ");

for (String palavra : palavras) {
System.out.println(palavra);
}[/code]

Sempre siga as dicas do javadoc. Além de darem recomendações de coisas mais fáceis de usar, as classes velhas tendem a não ser tão otimizadas e nem tão corrigidas quanto as novas.[/quote]

Valeu vou testar, é bom que já vou acostumando com esse método já que é o recomendado, pois sempre utilizei o StringTokenizer, parece ser bem simples também… Só uma dúvida esse for compara cada palavra separada ?? não entendi mt bem o uso desse for…[/quote]

Nossa que vacilo…já entendi…ele pega casa palavra e imprime…vlw ai…jah entendi…eheh

Esse for aqui:

for (String palavra : palavras) { //faz qualquer coisa }

É exatamente igual a esse aqui:

for (int i = 0; i < palavras.length; i++) { String palavra = palavras[i]; //faz qualquer coisa }

Você lê como "para cada". Para cada palavra na lista de palavras, faça…

[quote=ViniGodoy]Esse for aqui:

for (String palavra : palavras) { //faz qualquer coisa }

É exatamente igual a esse aqui:

for (int i = 0; i < palavras.length; i++) { String palavra = palavras[i]; //faz qualquer coisa }

Você lê como "para cada". Para cada palavra na lista de palavras, faça…[/quote]

Tava acostumado com o segundo for… mt interessante mesmo…mais uma vez obrigado pelas aulas…foram mt uteis…vlw mesmo… t+