Método para remoção de String

Existe algum método para remover strings que são repetidas dentro de um vector??

Valeu!

vPal eh um vetor de palavras, porque este algoritmo remove mais palavras do que o devido??? Alguem sabe me dizer???

Obrigado!!!


		public void removeVPal()
		{
			for (int i =0; i<vPal.size();i++)
			{
				
				String str = new String();
				str =(String) vPal.get(i);
				for (int j =vPal.size()-1; j>0;j--)
				{
					String str1 = new String();
					str1 =(String) vPal.get(j);
					if(str == str1)
					{
						vPal.remove(
					}
					
				}
				
			}
		}

Seu problema está aqui(prq todos se confundem ao comparar conteudo de String):

if(str == str1)
 					{
 						vPal.remove(..);
 					}

Com essa comparação vc está verificando se a referencia de str == str1 e na verdade vc que comparar se as String são equivalentes então utilize o metodo equals()

if(str.equals( str1))
 					{
 						vPal.remove(..);
 					}

Se você está procurando formas de impedir repetição de valores numa Collection, por que você não usa alguma implementação de Set como HashSet em vez de Vector?

Inté.

Se eu usa-se SET ou HASHSET como ficaria??? nunca implementei usando isto…

Valeu.

Que nem o Vector :stuck_out_tongue_winking_eye:

Set<String> s = new HashSet<String>();

a Interface Set não admite duplicações, então é só declarar e adicionar as Strings que você quer

o seu método “add”

boolean add(E o);

retorna false se já possuir algum elemento identico no seu set.

é só =]

[quote=halls]Se eu usa-se SET ou HASHSET como ficaria??? nunca implementei usando isto…

Valeu.[/quote]

Igual qualquer Collections.

http://blog.caelum.com.br/2006/10/04/performance-hashset-em-vez-de-arraylist/

Sempre quando tiver esse tipo de dúvida, pesquisa na API da versão da JDK correspondente à que você está utilizando para compilar suas classes.

Se existir “algum método” para “alguma coisa” ele vai estar lá!

http://java.sun.com/j2se/1.4.2/docs/api/java/util/Vector.html#remove(java.lang.Object)

[]s