在我的Java应用程序中,我需要比较两个列表的元素是否相似。
简而言之,假设我声明了两个列表,如下所示
List<String> a = new ArrayList<String>();
a.add("one");
a.add("three");
a.add("two");
Collections.sort(a);
List<String> a1 = new ArrayList<String>();
a1.add("ONE");
a1.add("two");
a1.add("THREE");
Collections.sort(a);
如果我写一个相等的条件,它会失败,因为列表的某些元素在不同的情况下像
if(a.equals(a1)){
System.out.println("equal");
} else{
System.out.println("not equal");
}
它将显示结果“不等于”
因此,请告诉我如何使列表元素仅在Java语言中不区分大小写。
谢谢和问候
最佳答案
为什么不使用不区分大小写的比较器使用SortedSet呢?
使用String.CASE_INSENSITIVE_ORDER比较器
您的代码被简化为
Set<String> a = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
a.add("one");
a.add("three");
a.add("two");
Set<String> a1 = new TreeSet<String>(String.CASE_INSENSITIVE_ORDER);
a1.add("ONE");
a1.add("two");
a1.add("THREE");
您的平等条件应该没有任何问题
编辑根据评论进行了修改。感谢大家纠正我。