如果两个列表以相同的顺序包含相同的元素,则它们是相等的。 因此,我们不能仅仅使用 equals 方法,因为我们想做与顺序无关的比较。传入长度相等的list判断
public static boolean listIsEquals(List l1,List l2){
Object[] obj1=l1.toArray();
Object[] obj2=l2.toArray();
char[] nums1=new char[obj1.length];
char[] nums2=new char[obj2.length];
for(int i=0;i<l1.size();i++){
nums1[i]=(char)obj1[i];
nums2[i]=(char)obj2[i];
}
System.out.println(Arrays.toString(nums1)+Arrays.toString(nums2));
Map<Character,Integer> map1=new HashMap();
Map<Character,Integer> map2=new HashMap();
for(int i=0;i<l1.size();i++){
map1.put(nums1[i],map1.getOrDefault((nums1[i]),0)+1);
map2.put(nums2[i],map2.getOrDefault((nums2[i]),0)+1);
}
System.out.println(map1);
System.out.println(map2);
if(map1.equals(map2)){
return true;
}else{
return false;
}
}