java - 如何在 Java 对象列表中搜索

标签 java list search collections

我有一个对象列表,并且列表非常大。对象是

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 选择或过滤项目.

你的代码应该是这样的:

Predicate condition = new Predicate() {
   boolean evaluate(Object sample) {
        return ((Sample)sample).value3.equals("three");
   }
};
List result = CollectionUtils.select( list, condition );

更新:

java8 中,使用 Lambda 和 StreamAPI这应该是:

List<Sample> result = list.stream()
     .filter(item -> item.value3.equals("three"))
     .collect(Collectors.toList());

好多了!

关于java - 如何在 Java 对象列表中搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13138990/

相关文章:

java - 使用 ui :param and access them in Backing bean 传递值

c# - 在每个索引处对嵌套列表中的值求和

arrays - handleChange 中对象数组的 setState 不起作用

regex - bash 在文件中的不同行上搜索多个模式

C 列表 - 访问结构体的成员并打印它

search - 内网搜索引擎前端?

java - 使用批处理程序时 MarkLogic 9 Java 客户端出现错误

java - 在HashMap中缓存数据(Connection、ResultSet、Statement从中获取数据后打开,放入Map中)

java - Hibernate:线程 "main"org.hibernate.MappingException 中出现异常:无效配置

javascript - 如何使用 javascript 将复选框添加到列表