我有一个包含国家名称的List<String>对象。我如何按字母顺序对这个列表排序?
当前回答
这是你要找的东西
listOfCountryNames.sort(String::compareToIgnoreCase)
其他回答
通过使用Collections.sort(),我们可以对列表进行排序。
public class EmployeeList {
public static void main(String[] args) {
// TODO Auto-generated method stub
List<String> empNames= new ArrayList<String>();
empNames.add("sudheer");
empNames.add("kumar");
empNames.add("surendra");
empNames.add("kb");
if(!empNames.isEmpty()){
for(String emp:empNames){
System.out.println(emp);
}
Collections.sort(empNames);
System.out.println(empNames);
}
}
}
输出:
sudheer
kumar
surendra
kb
[kb, kumar, sudheer, surendra]
下行字母:
List<String> list;
...
Collections.sort(list);
Collections.reverse(list);
更简单地说,您可以使用方法引用。
list.sort(String::compareTo);
Java 8,
countries.sort((country1, country2) -> country1.compareTo(country2));
如果String的compareTo不适合您的需要,您可以提供任何其他比较器。
JAVA 8相同:-
//Assecnding order
listOfCountryNames.stream().sorted().forEach((x) -> System.out.println(x));
//Decending order
listOfCountryNames.stream().sorted((o1, o2) -> o2.compareTo(o1)).forEach((x) -> System.out.println(x));