Вы действительно должны спросить себя, является ли ArrayList
правильной структурой данных.Учитывая схожую задачу, я бы выбрал Map
.И C #, и Java потребуется O (N) для поиска в массиве.Использование карты O (1).Если это то, что вам нужно часто, то я бы предложил правильную структуру.
На самом деле единственная разница между версией C # и Java заключается в том, что она короче и использует замыкание.Как и многие другие люди предложили, вы можете сделать то же самое с некоторыми существующими библиотеками.Никто на самом деле не показал никакого кода, хотя.С Guava вы можете сделать:
Iterables.find(new Predicate<Data>(){
public boolean apply(Data d){
return d.id == someId;
)}, list);
Или, если вам нужно значение по умолчанию, вы можете использовать .find (предикат, список, defaultValue) .