Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 检查是否有一个列表<;对象>;包含一个属性_Java_List_Contains - Fatal编程技术网

Java 检查是否有一个列表<;对象>;包含一个属性

Java 检查是否有一个列表<;对象>;包含一个属性,java,list,contains,Java,List,Contains,我有下面的java列表 List<MyObject> =[id ="id", name= "name", time =DateObj, id = "id2", name = "name2".. ] List=[id=“id”,name=“name”,time=DateObj,id=“id2”,name=“name2”。] 我想检查这个列表是否包含“name2”,而不必在列表中循环。在Java中是否有可以实现这一点的API?没有循环就无法做到这一点。当然,循环可以通过库方法完成,而

我有下面的java列表

List<MyObject> =[id ="id", name= "name", time =DateObj, id = "id2", name = "name2".. ]
List=[id=“id”,name=“name”,time=DateObj,id=“id2”,name=“name2”。]

我想检查这个列表是否包含“name2”,而不必在列表中循环。在Java中是否有可以实现这一点的API?

没有循环就无法做到这一点。当然,循环可以通过库方法完成,而不是由您完成

最简单的方法是使用Java 8流:

boolean name2Exists = list.stream().anyMatch(item -> "name2".equals(item.getName()));
在这种情况下,可以使用
HashMap

如果要根据名称进行检查。然后使用name作为HashMap中的键

HashMap<String, MyObject> map = new HashMap<String, MyObject>();
map.put(obj.getName(), obj);

如果MyObject是您自己的类,您可以适当地重写方法equals(和hashcode)。因此,您可以使用标准方法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
}
List myObjectList=。。。;
...
MyObject objectToBeFound=新的MyObject(“名称2”,…);
if(myObjectList.contains(objectToBeFound))
{
//对象在列表中
}
其他的
{
//它不在名单上
}

但实际上,无论如何都会有某种依赖于列表实现的循环。其中一些可能会执行简单的迭代。:)

如果您创建一个包含对象名称和值MyObject的HashMap,那么使用Map可能是个好主意。其中key是您知道的字段和值,这甚至不是Java代码。我猜
MyObject
包含
id
name
time
?如果是这样的话,要么使用单独的映射,要么只是迭代列表元素并检查每个元素。该死,流太神奇了。
List<MyObject> myObjectList = ...;
...
MyObject objectToBeFound = new MyObject("name2", ...);
if (myObjectList.contains(objectToBeFound))
{
    //object is in the list
}
else
{
    //it is not in the list
}