在我的 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");
你的平等条件应该没有任何问题
EDIT 根据评论修改。感谢大家指正。
关于java - 使 ArrayList 元素不区分大小写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3529025/