我有一个对象列表,并且该列表非常大。对象是
class Sample {
String value1;
String value2;
String value3;
String value4;
String value5;
}
现在我必须在列表中搜索对象的特定值。说如果value3=='three'
我必须返回这些对象(我的搜索并不总是基于 value3)
名单是
List<Sample> list = new ArrayList<Sample>();
有效的方法是什么?
Thanks.
你可以尝试一下Apache 共享集合.
有一个班级集合实用程序允许您按自定义选择或过滤项目谓词.
你的代码将是这样的:
Predicate condition = new Predicate() {
boolean evaluate(Object sample) {
return ((Sample)sample).value3.equals("three");
}
};
List result = CollectionUtils.select( list, condition );
Update:
In java8,使用 Lambda 和流媒体接口这应该是:
List<Sample> result = list.stream()
.filter(item -> item.value3.equals("three"))
.collect(Collectors.toList());
好多了!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)