¿Cómo puedo saber si los elementos de una lista de matriz son iguales o diferentes?

user10274438:

Estoy tratando de verificar si todos los elementos de una lista de arreglo son los mismos o no. Este es mi código:

ArrayList<Integer> arr = new ArrayList<>(Arrays.asList(2,2,4,2));
for (int z = 0; z < arr.size(); z++) {          
    if(!arr.get(z++).equals(arr.get(z--))) {
        System.out.println("same"); 
    }else {
        System.out.println("differnt");         
    }
}
Marco13:

Poner los elementos en una Set. Si el conjunto resultante tiene un tamaño de 1, a continuación, todos los elementos han sido la misma. Una línea de código, no hay bucles, no hay índices, trabaja con cada colección:

boolean allTheSame = new HashSet<Integer>(list).size() == 1;
System.out.println(allTheSame ? "same" : "different");

(Edited :)

Podría valer la pena señalar que si la lista es grande, y probablemente contiene muchos elementos diferentes, entonces la construcción de un Setimpondrá cierta sobrecarga de memoria que puede ser evitado, si se desea. En este caso, usted iterar sobre la lista y comparar todos los elementos a la primera. Sin embargo, usted debe no comprobar los elementos de identidad con ==. En su lugar, usted debe comparar el uso de su equalsmétodo, o, si lo desea manejar amablemente nullentradas, utilizando Objects#equals.

Un ejemplo de cómo resolver esto de manera eficiente y genéricamente se da en la respuesta por Zabuza

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=176679&siteId=1
Recomendado
Clasificación