Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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

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 - Fatal编程技术网

java-检查列表中是否存在对象数组

java-检查列表中是否存在对象数组,java,list,Java,List,我在此结构中有一个对象数组列表: List<Object[]> numbers = new ArrayList<>(); numbers.add(new Object[]{1, 2, 3, 4}); 此条件始终返回false。有什么问题吗?您可以尝试以下方法: List<Object[]> numbers = new ArrayList<>(); numbers .add(new Object[]{1, 2, 3, 4}); boolean b

我在此结构中有一个对象数组列表:

List<Object[]> numbers = new ArrayList<>();
numbers.add(new Object[]{1, 2, 3, 4});
此条件始终返回false。有什么问题吗?

您可以尝试以下方法:

List<Object[]> numbers = new ArrayList<>();
numbers .add(new Object[]{1, 2, 3, 4});
boolean b = list.stream().anyMatch(o -> Arrays.deepEquals(o, new Object[]{1, 2, 3, 4}));

System.out.println("b = " + b);

你能用整数数组代替对象吗?
newsomething()
创建一个新实例,这样你的
newobject[]{1,2,3,4}
都是不同的(不是相同的hashcode)@RC。但是
contains
方法使用
equals
方法查找匹配项object@sidgate-是,但对于数组,
equals()
sin未被覆盖,因此您将只检查引用在这种情况下,而不是使用
List
您应该使用
List
我觉得作为Java 8选项,这个答案会让您受益更多。我已经在我的PC中进行了检查,它运行良好,您可以尝试。您应该尝试一下,不要使用新的运算符列表编号=new ArrayList();Object[]obj=新对象[]{1,2,3,4};编号。添加(obj);if(numbers.contains(obj))System.out.println(“True”);else System.out.println(“假”);是的,我知道它有效。这可能就是我没有否决它的原因。这里的要点是,我在回答中链接到的重复问题(随后投票结束这个问题)将从这个答案中受益更多,因为第一个-这是一个重复的问题,第二个-链接的重复中确实缺少Java 8选项。
List<Object[]> numbers = new ArrayList<>();
numbers .add(new Object[]{1, 2, 3, 4});
boolean b = list.stream().anyMatch(o -> Arrays.deepEquals(o, new Object[]{1, 2, 3, 4}));

System.out.println("b = " + b);
b = true