[英]Check if a List<Object> contains a property
我在Java中有以下列表
List<MyObject> =[id ="id", name= "name", time =DateObj, id = "id2", name = "name2".. ]
我想检查此列表是否包含“ name2”,而不必遍历该列表。 是否有可用的API在Java中实现此目标?
没有循环就无法做到这一点。 但是,当然,循环可以由库方法完成,而不是由您完成。
最简单的方法是使用Java 8流:
boolean name2Exists = list.stream().anyMatch(item -> "name2".equals(item.getName()));
在这种情况下HashMap<String,MyObject>
可以使用HashMap<String,MyObject>
。
如果要根据名称进行检查。 然后使用name作为HashMap中的键。
HashMap<String, MyObject> map = new HashMap<String, MyObject>();
map.put(obj.getName(), obj);
要检查地图是否包含特定值。
if (map.containsKey("name2")) {
// do something
}
如果MyObject是您自己的类,则可以适当地重写equals(和哈希码)方法。 因此,您可以使用标准方法list.contains
List<MyObject> myObjectList = ...;
...
MyObject objectToBeFound = new MyObject("name2", ...);
if (myObjectList.contains(objectToBeFound))
{
//object is in the list
}
else
{
//it is not in the list
}
PS。 但是实际上,总会有某种依赖于List实现的循环。 其中一些可能会进行简单的迭代。 :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.