按字母顺序对数组列表进行排序(不区分大小写)

2022-08-31 08:27:46

我有一个字符串数组列表,其中包含人名。我想按字母顺序对数组列表进行排序。names

ArrayList<String> names = new ArrayList<String>();
names.add("seetha");
names.add("sudhin");
names.add("Swetha");
names.add("Neethu");
names.add("ananya");
names.add("Athira");
names.add("bala");
names.add("Tony");
names.add("Karthika");
names.add("Nithin");
names.add("Vinod");
names.add("jeena");
Collections.sort(names);
for(int i=0; i<names.size(); i++)
    System.out.println(names.get(i));

我试图以上述方式对列表进行排序。但它将排序后的数组显示为:

Athira
Karthika
..
..
ananya
bala
...

但我不想让它区分大小写。我希望结果为:

ananya
Athira
bala

答案 1

自定义应该会有所帮助Comparator

Collections.sort(list, new Comparator<String>() {
    @Override
    public int compare(String s1, String s2) {
        return s1.compareToIgnoreCase(s2);
    }
});

或者,如果您使用的是 Java 8:

list.sort(String::compareToIgnoreCase);

答案 2

最简单的方法是:

Collections.sort(list, String.CASE_INSENSITIVE_ORDER);

推荐