我有一个包含国家名称的List<String>对象。我如何按字母顺序对这个列表排序?
当前回答
在一行中,使用Java 8:
list.sort(Comparator.naturalOrder());
其他回答
下行字母:
List<String> list;
...
Collections.sort(list);
Collections.reverse(list);
假设这些是字符串,使用方便的静态方法sort:
Collections.sort(listOfCountryNames)
你可以使用下面这行
集合。排序(listOfCountryNames String.CASE_INSENSITIVE_ORDER)
它类似于Thilo的建议,但不会区分大小写字符。
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));
您可以使用Java 8 Stream或Guava创建一个新的排序副本:
// Java 8 version
List<String> sortedNames = names.stream().sorted().collect(Collectors.toList());
// Guava version
List<String> sortedNames = Ordering.natural().sortedCopy(names);
另一种选择是通过Collections API就地排序:
Collections.sort(names);
推荐文章
- 使Hibernate忽略未映射的实例变量
- 映射enum在JPA与固定的值?
- 如何找到可用的端口?
- 假唤醒在Java中真的发生了吗?
- 如何按字母顺序排序列表?
- 如何在java中格式化持续时间?(如格式H:MM:SS)
- urlencoder .encode(字符串)已弃用,我应该使用什么代替?
- javax.transaction.Transactional vs . org.springframework.transaction.annotation.Transactional
- Java 8接口方法中不允许“同步”的原因是什么?
- 如何读一个文本文件到一个列表或数组与Python
- Linq选择列表中存在的对象(A,B,C)
- 如何找到Java堆大小和内存使用(Linux)?
- 返回大列表中每n项的python方式
- 使用Enum实现单例(Java)
- RabbitMQ与通道和连接之间的关系