Trabalhar com um lista de strings

Ola pessoal eu gostava de saber como faço pra ter uma lista de string e poder percorrer a mesma.
Ou seja quero adicionar strings e ler.

Pra percorrer a lista, tipo assim:

List<String> lista = new ArrayList<String>();  
for(String s : lista) {  
   // codigo pra imprimir ou fazer o diabo com a string.
}  

//Daniel

Você pode usar as classes que utilizam lista, como ArrayList. No caso de lista de Strings você pode usar um recurso novo adicionado no java 5 que são os genéricos. Ficaria assim:

ArrayList<String> lista = new ArrayList<String>();

Nesta lista você só pode adicionar Strings. Dá uma pesquisada na API e você consegue encontrar os métodos para adicionar, e buscar os valores da e na lista.

abraços!

Obrigado pessoal a solucao que usei é essa mesmo.

Encontrei nesta pagina http://leepoint.net/notes-java/data/collections/lists/arraylist.html

Espero que ajude alguem ;D

Algumas dicas:

  1. Sempre use o arraylist através da interface List. Ou seja, faça assim:
    List<String> lista = new ArrayList<String>();

e não assim:
ArrayList<String> lista = new ArrayList<String>();

Isso permite que você depois troque a implementação da lista, sem refazer seu código inteiro. Da mesma forma, métodos que retornem o tipo List, ou que aceitem o tipo List como parâmetro, suportam mais listas do que só o ArrayList.

  1. Use o iterator apenas se quiser excluir elementos da lista.

Por exemplo, o código abaixo percorre a lista e exclui todos os João.

Iterator<String> it = lista.iterator(); while (it.hasNext()) { String valor = it.next(); if (valor.startsWith("João")) it.remove(); }

Se você tentar excluir um elemento durante um for…each, obterá uma ConcurrentModificationException.

  1. Outra forma de percorrer a lista excluindo elementos é percorrer uma cópia da lista, mas chamar o remove da lista mesmo.

for (String nome : new ArrayList(lista)) { if (nome.startsWith("João")) lista.remove(nome); }

Esse método é menos eficiente que o anterior, já que o remove irá percorrer novamente a lista original. Por outro lado, é bem útil quando a remoção está sendo feita em algum método, e você não teria acesso ao iterator a partir de lá. Por exemplo:

[code]
public void removerDaLista(String nome) {
if (!podeRemover(nome))
throw new IllegalArgumentException(“O nome não pode ser removido!”);

//Essa remoção é um pouco mais complexa, por isso a existência de um método
lista.remove(nome);
indice.remove(nome);
nomes--;

}

//Como implementar esse método, chamando o RemoverDaLista?
//Não cabe usar o iterator, pois ele não fará aquelas verificações.
//Se você usar o iterator e chamar o método removerDaLista com o nome obtido, o método chamará o remove e o
//iterator disparará ConcurrentModificationException. O iterator só funciona com seu próprio remove()
//Você poderia duplicar código, o que dificilmente é uma boa prática
//
//Ou, fazer como fiz acima, percorrer uma cópia da lista. Observe:
public void removerTodos(String nome) {
for (String nome : new ArrayList(lista)) {
if (nome.startsWith(“João”))
removerDaLista(nome);
}[/code]

1 curtida