Есть несколько способов сделать это. Во-первых, вы можете сделать простой цикл for, перебирая все объекты, пока не найдете объект с определенным идентификатором. Ваша сложность поиска будет O(N)
anObject obj = null;
dance: for( int i = 0; i < objects.length; i++ )
{
if( object[i].id == 2 )
{
obj = object[i];
break dance;
}
}
если вы знаете, что всегда будете искать по id, вы можете реализовать Comparable. Затем вы можете использовать java.util.Arrays
для сортировки и поиска в массиве. Это уменьшит ваш поиск до O(log n)
public class anObject implements Comparable {
public String id, otherProperty;
public anObject(){
this.id = "1";
this.otherProperty = "cat";
}
public int compareTo( Object o )
{
if( o instanceof anObject )
{
return this.id.compareTo( ( (anObject) other).id );
}
return -1;
}
}
Последний вариант, вы можете сохранить результаты в Map<String, anObject>
. Если вы делаете большой поиск, это лучший метод, так как он дает ваш поиск O(1)
, за счет дополнительной памяти.