java - ArrayList<int[]> 包含一个值

标签 java

如果我有一个ArrayList<int[]>示例,我想检查其中是否包含 {2,4} 我该怎么做?

exaple.contains({2,4}); //doesn't work

exaple.contains(2,4); //doesn't work either

代码有什么问题?

最佳答案

数组不会覆盖 Object.equals()方法(ArrayList.contains() 用于比较对象)。所以一个数组只等于它自己。您必须遍历列表并使用 Arrays.equals() 将每个元素与您的数组进行比较.

不过,我怀疑你不应该有 List<int[]> ,而是一个 List<Coordinate> .然后 Coordinate 类可以覆盖 equals()hashCode() , 你就可以使用

example.contains(new Coordinate(2, 4))

您也可以使用 List<List<Integer>> ,但如果我怀疑是真的(即您使用数组来保存两个应该在类中的坐标),那么请使用自定义坐标类。

关于java - ArrayList<int[]> 包含一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21957172/

相关文章:

Java URLDecoder 在与包含 % 的字符串一起使用时抛出异常

java - 为什么仅当我的 Controller 具有@RequestMapping (produces = ...) 时,Spring 的 HandlerInterceptorAdapter 才会被调用两次?

java - 无法解析 'javax.persistence.EntityManager' 的 bean

java - JPA @OneToMany : Returning only some values from map in a query

java - 如何在拖动组件时获取组件的x位置?

java - android oreo 的后台服务

java - Java App Engine 11 项目的 app.yaml 中的变量替换

Java、JavaScript : Avoid escaping particular HTML tags

java - 从 Android 应用程序自动在本地网络上查找服务器

java - Android:如何获得箭头按钮?