Java List 快速搜索对象

作者: 旺仔爸 | 来源:发表于2016-12-20 10:26 被阅读435次

    比如现在有一个需求现在有一个List 里面装Student 对象 我们想找出这个List 对象里面student name=小明的对象 我想很多同学会像以前的我一样变量List 然后去比较 但是这样处理毕竟效率不高 所以今天查资料总结下

    
    
    List<Student> list = new ArrayList<>();
    
      list.add(new Student("name1", 1));
    
      list.add(new Student("name2", 2));
    
      list.add(new Student("name3", 2));
      
      list.add(new Student("name1", 3));
    
      /**
       * 方法一 
       * 利用 Apache Commons Collections 工具类
       * 下载地址 http://commons.apache.org/proper/commons-collections/download_collections.cgi
       */
      Predicate<Student>predicate = new Predicate<Student>() {
    
       @Override
       public boolean evaluate(Student student) {
        // TODO Auto-generated method stub
        return student.getAge()==2;
       }
      };
      //找出age==2 的对象
      List<Student> result = (List<Student>) CollectionUtils.select( list, predicate);
      
      /**
       * 方法二
       * In java8, using Lambdas and StreamAPI this should be:
       * 需要安装Java8
       */
      
      List<Student> result1 = list.stream()
            .filter(item -> item.getName().equals("name1"))
            .collect(Collectors.toList());
    
    

    打印结果

    name2
    name3
    JAVA8------------------
    name1
    name1
    

    Demo 地址:https://github.com/chenguandong/Java_Demo
    本文参考:http://stackoverflow.com/questions/13138990/how-to-search-in-a-list-of-java-object

    相关文章

      网友评论

        本文标题:Java List 快速搜索对象

        本文链接:https://www.haomeiwen.com/subject/sluxvttx.html