如何在Java对象列表中进行搜索
我有一个对象列表,列表很大。对象是
class Sample { String value1;
String value2;
String value3;
String value4;
String value5;
}
现在,我必须在列表中搜索对象的特定值。假设value3=='three'
我必须返回那些对象(我的搜索并不总是基于value3)
清单是
List<Sample> list = new ArrayList<Sample>();
有效的方法是什么?
谢谢。
回答:
您可以尝试使用Apache Commons Collections。
有一个CollectionUtils类,允许您通过自定义谓词选择或过滤项目。
您的代码将如下所示:
Predicate condition = new Predicate() { boolean evaluate(Object sample) {
return ((Sample)sample).value3.equals("three");
}
};
List result = CollectionUtils.select( list, condition );
在 ,使用
和StreamAPI应该是:
List<Sample> result = list.stream() .filter(item -> item.value3.equals("three"))
.collect(Collectors.toList());
好多了!
以上是 如何在Java对象列表中进行搜索 的全部内容, 来源链接: utcz.com/qa/400790.html