在我的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");

您的平等条件应该没有任何问题

编辑根据评论进行了修改。感谢大家纠正我。

10-04 14:57
查看更多