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