Duvida com List

Bom dia,

Criei um List com e adicionei Strings, gostaria de saber como faço para comparar atraves de letras, por exemplo eu digito em um jtextfield e o meu List procura o string com a determinada letra, como um select no sql,

se alguem puder me ajudar, agradeço

Cara, vc pode Iterar o seu list comparando todas os caracteres das Strings em cada posição, mas vamo lá né, isso vai ficar pesaaaado !

Um abraço,

Talvez não precisaria comparar “braçalmente” cada caractere da String…

se servir, pode utilizar o método da propria classe String o contains…
mas vai ter que iterar o List da mesma maneira

  String s;
  s.contains("a"); // Contém "a"
  s.startsWith("a"); // Inicia com "a"
  s.endsWith("a"); // Termina com "a"

Abraço…

mas como eu faço isto, vc tem algum exemplo por favor.

obrigado

bahhhh, ta mão irmão… :smiley:
Não testei, por isso nem sei se compila

		// Criando sua lista de String's
		List<String> lista = new ArrayList<String>();

		// Adicionando valores
		lista.add("Mario");
		lista.add("Fabio");
		lista.add("Paulo");
		lista.add("Joao");
		
		// Percorrendo a lista em busca de algo
		// Crie um metodo para isso
		for (String item : lista) {
			String buscar = jTextField1.getText();
			
			if (item.contains(buscar)) {
				System.out.println("A lista CONTEM " + buscar + " em : " + item);
			}
			
			if (item.startsWith(buscar)) {
				System.out.println("A lista COMECA COM " + buscar + " em : " + item);
			}
			
			if (item.endsWith(buscar)) {
				System.out.println("A lista TERMINA COM " + buscar + " em : " + item);
			}			
		}

+/- isso??

OBRIGADO PELA AJUDA,

FALOW

nao sei se é exatamente o q vc quer mas aqui temos um List de Strings com as palavras a procuras
ordenamos ele
e depois o metodo findWors que recebe um char retorna uma lista com todas as palavras q contenham este char
vc pode alterar para receber uma string ao inves de um char ou alterar o retorno como achar melhor

tendo o List ordenado vc pode ate usar metodos da Classe Collections como bynarySearch ();

List words = new ArrayList();

Collections.sort(words);

public List findWors(Char a ){
List correctword = new ArrayList();
for(String s : words){
if (s.contains(a)){
correctword.add(s);
}
return correctword
}

Thiago, por que vcs não usam um TreeSet?

O contains do TreeSet é mais rápido, o set não aceita repetições e ele já fica automaticamente ordenado.

ai que tah neh,
quem sabe fala mais… :wink:

A ideia de usar um TreeSet é ótima.
Só quis sugerir a ideia de ordenar antes de fazer a busca
e sugerir a possibilidade de usar busca binaria que pode ser mais rapida do que um loop por toda a coleção