gpt4 book ai didi

java - 是否有任何通用且最简单的方法来检查 String[] 或 String[][] 的任何 2 个列表是否相等?

转载 作者:搜寻专家 更新时间:2023-11-01 02:26:53 26 4
gpt4 key购买 nike

检查这两个列表是否相等的通用且最简单的方法是什么:

            List<String[]> list1=new ArrayList<String[]>();
String[] s1={"1","2"};
String[] s2={"3","4"};
list1.add(s1);
list1.add(s2);

List<String[]> list2=new ArrayList<String[]>();
String[] s3={"1","2"};
String[] s4={"3","4"};
list2.add(s3);
list2.add(s4);

互联网上的一些解决方案建议使用 Collections.sort

Collections.sort(list1);
Collections.sort(list2);

if(list1.equals(list2)){
System.out.println("true");
}
else{
System.out.println("false");
}

但它打印出“false”其他建议使用 containsAll

if(list1.containsAll(list2)){
System.out.println("true");
}
else{
System.out.println("false");
}

但它也打印出“false”似乎上述 2 个解决方案仅适用于 List 但不适用于 List<String[]>甚至更复杂 List<List<String[]>>那么是否有任何通用的方法来检查任何 2 个列表是否相等。

最佳答案

使用Arrays.deepEquals

boolean isEqual=Arrays.deepEquals(list1.toArray(), list2.toArray());

也是返回true对于 List<String[][]> , 例如

    List<String[][]> list1 = new ArrayList<String[][]>();
String[][] s1 = {{"1", "2"}, {"1", "2"}};
String[][] s2 = {{"3", "4"}, {"3", "4"}};
list1.add(s1);
list1.add(s2);

List<String[][]> list2 = new ArrayList<String[][]>();
String[][] s3 = {{"1", "2"}, {"1", "2"}};
String[][] s4 = {{"3", "4"}, {"3", "4"}};
list2.add(s3);
list2.add(s4);

boolean isEqual = Arrays.deepEquals(list1.toArray(), list2.toArray());

System.out.println(isEqual);//will print true.

根据 docs ,

  • Returns true if the two specified arrays are deeply equal to one another. Unlike the equals(Object[],Object[]) method, this method is appropriate for use with nested arrays of arbitrary depth.

关于java - 是否有任何通用且最简单的方法来检查 String[] 或 String[][] 的任何 2 个列表是否相等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20369545/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com