ArrayList de String

12 respostas
Tche

É possível que eu impeça minha lista de receber alguma string que jah conste nela?

exemplo:

tenho uma lista com as seguintes strings: “a”, “b”.

ao add mais uma, nao poderia ser nem a nem b.

existe isto ou apenas percorrendo a lista e verificando uma a uma que eu consigo?

Valeu

12 Respostas

S

Eu acho que so percorrendo, pelo menos eu nao tenho nenhuma ideia de como fazer isso sem percorrer ela.

Tche

a tah…

sei lah é q imaginai q tivesse algum atributo ou coisa do tipo que pudesse impedir a inserção de dados repetidos…

mas se não existe isso,

vamos para o for!

Naruffy

em vez de percorrer você pode usar o método contains da arraylist, fica mais rapido do que percorrer a lista inteira.

wbdsjunior

use o método contains. é melhor.

abraço.

sf.marcius

Será que não daria para usar java.util.Set em vez de List (ja que ArrayList implementa List)?

pelo que entendi, Set não possui repetição e ambas, Set e List, estendem Collection.

me corrijam se eu estiver errado :slight_smile:

T

Tché:

É possível que eu impeça minha lista de receber alguma string que jah conste nela?

exemplo:

tenho uma lista com as seguintes strings: “a”, “b”.

ao add mais uma, nao poderia ser nem a nem b.

existe isto ou apenas percorrendo a lista e verificando uma a uma que eu consigo?

Valeu

Use um LinkedHashSet(); exceto pelo fato que o LinkedHashSet não implementa java.util.List (ou seja, não dá para percorrer elemento por elemento com “get”, apenas com um Iterator), ele não aceita duplicatas automaticamente, o que é muito desejável na maior parte dos casos.

Tche

valeu galera.

No meu caso é melhor eu utilizar o constains.

valeu!!

muldon

Use o HashSet, ele já resolve seu problema das repeticoes.

import java.util.HashSet;
import java.util.Set;


public class HashSetTest {

	public HashSetTest(){
		
		Set<String> hashTest = new HashSet<String>();
		hashTest.add("A");
		hashTest.add("B");
		hashTest.add("C");
		hashTest.add("D");
		hashTest.add("A");
		hashTest.add("B");
		
		System.out.println(hashTest);
	}
	
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		HashSetTest hashSetTest = new HashSetTest();	
	}

}

Resultado:

[D, A, B, C]

samea
Oi alguem ai sabe me dizer como eu posso ler caracteres de uma string e depois imprimir somente um numero determinado desses caracteres?

Eu tentei fazer assim

for (int loop =1; loop<=50; loop++){

strNovoCaractere = strNovoCaractere + strcaractere_string.indexOf(loop);

}

mas deu erro na hora de imprimir ele aparece um monte de -1 ao invez de aparecer a frase!

Se alguem souber me responda por favor

bjokas Samea

sf.marcius

samea,

tem que usar o metodo charAt():

String strNovoCaractere "digite uma frase aqui de no minimo 50 chars!!!";
for (int loop =1; loop<=50; loop++) {
    strNovoCaractere = strNovoCaractere + strcaractere_string.charAt(loop);
}

mas eu acho q assim fica melhor:

String fraseInteira = "bla bla bla";
        int posIni = 4;
        int posFim = 7;
        // imprime apenas o segundo "bla"
        System.out.println(fraseInteira.subString(posIni, posFim));
M

Porque não abriu um novo tópico?

Todavia, use charAt(int) ao invés de indexOf(int)

charAt - retorna o char naquele índice
indexOf - o retorna o índice daquele char. Se não houve aquele char, retornar -1 (que é o caso).

Outra coisa, seu loop vai até 50, mas você está certa que haverão todos esses caracteres na String (se não houver, você receberá um ArrayOutArrayIndexOutOfBoundsException)

samea

Valeu meninos obrigada pela força!
bjokas Samea

Criado 6 de janeiro de 2009
Ultima resposta 6 de jan. de 2009
Respostas 12
Participantes 9