Alguem poderia me ajudar? Gostaria de saber como posso ter um ArrayList em que cada nó teria mais do que um dado. Sendo q eu teria q fazer uma busca relacionada c um desses dados. O ArrayList seria o ideal para se fazer isso, ou há um modo mais facil?
De uma forma bem grosseira vc pode usar um array de Object.
Mais um bean ficaria melhor
Se você vai iterar pela lista buscando os dados, ArrayList serve.
Para guardar mais de um objeto em cada posição do array, utilize outra coleção ou um array comum. Exemplo:
List listaPrincipal = new ArrayList();
listaPrincipal.add( new String[]{ "string1", "string2" } );
listaPrincipal.add( new String[]{ "string3", "string4" } );
Contudo, se a quantidade de objetos a serem guardados em “listaPrincipal” é sabida, você também pode utilizar um array normal, que é quase nada mais rápido que o arrayList.
Object[] arrayPrincipal = new Object[ 200 ];
arrayPrincipal[ 0 ] = new String[]{ "string1", "string2" };
arrayPrincipal[ 1 ] = new String[]{ "string3", "string4" };
Felipe,
Valeu por enquanto, mas como eu poderia fazer uma busca pelo primeiro objeto, por exemplo, de cada posicao do array?
Há dezenas de métodos e algoritmos para tal. Um jeito mais básico e lento seria:
class BuscadorFeioBasicoELento {
public static void main( String[] bananinha )
{
String[][] arrayPrincipal = new String[ 2 ][ 2 ];
arrayPrincipal[ 0 ] = new String[] { "string1", "string2" };
arrayPrincipal[ 1 ] = new String[] { "string3", "string4" };
String stringParaProcurar = "string3";
boolean encontrei = buscarNaPrimeiraPosicao( stringParaProcurar,
arrayPrincipal );
if( encontrei )
System.out.println( "String '" + stringParaProcurar
+ "' encontrada!" );
else
System.out.println( "String " + stringParaProcurar
+ " NÃO encontrada." );
}
// retorna true se encontrou ou false caso contrário
public static boolean buscarNaPrimeiraPosicao( String stringParaEncontrar,
String[][] arrayParaBusca )
{
for( int i = 0; i < arrayParaBusca.length; i++ )
{
// a primeira posição do array na posição 'i'
// utilize o método 'equals' para comparar strings, não ==
if( arrayParaBusca[ i ][ 0 ].equals( stringParaEncontrar ) )
return true;
}
// se chegou até aqui é porque não encontrou
return false;
}
}
Para saber mais sobre algoritmos de busca, google
Valeu Filipe!
e desculpe por ter escrito Felipe!