【问题标题】:Searching object from ArrayList从 ArrayList 中搜索对象
【发布时间】:2015-12-30 10:01:06
【问题描述】:
List <obj> list1= new ArrayList<obj>();

obj a1 = new obj("value11", value21);
obj a2 = new obj("value12", value22);
obj a3 = new obj("value11", value23);

list1.add(a1);
list1.add(a2);
list1.add(a3);

现在我需要获取值为“value11”的数组列表中的对象。

预期的对象是 a1 和 a3

【问题讨论】:

  • 只需对其进行迭代并检查您的状况并返回。有什么障碍?
  • 你能展示你的 obj 类吗?

标签: arraylist collections


【解决方案1】:

使用这条线 System.out.println(list1);

【讨论】:

    【解决方案2】:

    使用 lambda 表达式:

    List<obj> result = list1.stream()
    .filter(p -> p.someProperty == "value11").collect(Collectors.toList());
    

    【讨论】:

      【解决方案3】:

      过滤 ArrayList 的示例:

      List<String> items = new ArrayList<>();
          items.add("A");
          items.add("B");
          items.add("C");
          items.add("D");
          items.add("E");
      
      items.stream()
              .filter(s->s.contains("D"))
              .forEach(System.out::println);
      

      Java ArrayList Doc

      【讨论】:

        【解决方案4】:

        像这样的用户 lambda 表达式:

        List <obj> list1= new ArrayList<obj>();
        
        obj a1 = new obj("value11", value21);
        obj a2 = new obj("value12", value22);
        obj a3 = new obj("value11", value23);
        
        list1.add(a1);
        list1.add(a2);
        list1.add(a3);
        

        假设我们的 obj 类是这样的

        public class obj  
        {
         public String item_key {get;set;}
         public String item_value {get;set;}
        }
        

        然后你可以找到这样的东西:

        var i = list1.where(model=>model.item_key.equal("value11"));
        

        这将返回所有包含“value11”的项目

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-02-28
          • 2017-09-08
          • 1970-01-01
          • 2012-11-23
          • 2020-12-14
          • 1970-01-01
          • 2018-08-07
          相关资源
          最近更新 更多