suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Java中List的contains方法为什么不能实现二维数组中的去重?

请教为什么以下代码会返回false?

        List list = new ArrayList();
        int[][] arr = {{-1, -1, 2}, {-1, 0, 1}};
        list.add(arr[0]);
        list.add(arr[1]);
        int[] temp = {-1, 0, 1};
        return list.contains(temp);

当list中的元素是数组时,如何实现去重?谢谢回答

迷茫迷茫2803 Tage vor917

Antworte allen(1)Ich werde antworten

  • PHP中文网

    PHP中文网2017-04-18 10:50:06

    内部是用 equals 的

        public boolean contains(Object o) {
            return indexOf(o) >= 0;
        }
            public int indexOf(Object o) {
            if (o == null) {
                for (int i = 0; i < size; i++)
                    if (elementData[i]==null)
                        return i;
            } else {
                for (int i = 0; i < size; i++)
                    if (o.equals(elementData[i]))
                        return i;
            }
            return -1;
        }
        

    可以改写 比较所有元素的吧

    Antwort
    0
  • StornierenAntwort