从ArrayList中搜索对象

时间:2015-12-30 10:01:07

标签: arraylist collections

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);

现在我需要获取数组列表中的对象,其值为&#34; value11&#34;。

预期的对象是a1和a3

4 个答案:

答案 0 :(得分:0)

使用此行 的System.out.println(list1的);

答案 1 :(得分:0)

使用lambda表达式:

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

答案 2 :(得分:0)

过滤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

答案 3 :(得分:0)

用户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"));

这将返回包含&#34; value11&#34;

的所有项目