Normalmente, usted debe evitar tratar con matrices. son feos y conducen a este tipo de problemas. Si es posible, use List<List<String>>
, entonces puede usar .equals()
normalmente.
si insiste, podría utilizar una implementación isequal personalizada como la siguiente. la clave es usar Arrays.equals()
public class DemoEquals {
List<String[]> listOne = (List<String[]>) Arrays.asList(new String[]{"one1", "one2"}, new String[]{"two1"});
List<String[]> listOneOne = (List<String[]>) Arrays.asList(new String[]{"one1", "one2"}, new String[]{"two1"});
List<String[]> listTwo = (List<String[]>) Arrays.asList(new String[]{"2one1", "2one2"}, new String[]{"2two1"});
private boolean isEqual(List<String[]> list1, List<String[]> list2) {
if (list1.size() != list2.size()) return false;
for (int i = 0; i < list1.size(); i++) {
if (!Arrays.equals(list1.get(i), list2.get(i))) return false;
}
return true;
}
@SuppressWarnings("unchecked")
private void isEqual() {
//prints true
System.out.println(isEqual(Collections.EMPTY_LIST, Collections.EMPTY_LIST));
//prints true
System.out.println(isEqual(listOne, listOne));
//prints true
System.out.println(isEqual(listOne, listOneOne));
//prints false
System.out.println(isEqual(listOne, listTwo));
//prints false
System.out.println(isEqual(listOne, Collections.EMPTY_LIST));
}
public static void main(String[] args) {
new DemoEquals().isEqual();
}
}
¿Puede proporcionar un fragmento de código de lo que ha intentado? – kosa
"Recibí una excepción con el mensaje ** null ** ... por alguna razón solo funciona x.equals (y), y ** no y.equals (x) **." Creo que 'y' es' nulo', ¿alguna vez lo inicializaste? – Sam
+ Sam lo hago, justo después de 'public class MainActivity extends Activity {'. – RobinJ