Conjuntos - [resolvido]

9 respostas
felipehts
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,  que a união não pega os elementos repetidos, alguém poderia da uma ideia ¿¿¿¿ obrigado

9 Respostas

igor_jua

.equals ???

M

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

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).
felipehts

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).

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

ViniGodoy

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

Por exemplo:

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

for (String palavra : palavras) {
   System.out.println(palavra);
}

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.

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

Por exemplo:

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

for (String palavra : palavras) {
   System.out.println(palavra);
}

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.

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....

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

Por exemplo:

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

for (String palavra : palavras) {
   System.out.println(palavra);
}

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.

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....

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

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…

felipehts

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…

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

Criado 18 de setembro de 2010
Ultima resposta 22 de set. de 2010
Respostas 9
Participantes 4