如何在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

回到顶部