如何按字母顺序对列表进行排序?
2022-08-31 05:58:56
我有一个包含国家/地区名称的对象。如何按字母顺序对此列表进行排序?List<String>
我有一个包含国家/地区名称的对象。如何按字母顺序对此列表进行排序?List<String>
如果您被迫使用该列表,或者您的程序具有如下结构:
那么Thilos的答案将是最好的方法。如果你把它与Tom Hawtin的建议结合起来 - tackline,你会得到:
java.util.Collections.sort(listOfCountryNames, Collator.getInstance());
如果您可以自由决定,并且您的应用程序可能会变得更加复杂,那么您可以更改代码以改用 TreeSet。这种集合仅在插入条目时对条目进行排序。无需调用 sort()。
Collection<String> countryNames =
new TreeSet<String>(Collator.getInstance());
countryNames.add("UK");
countryNames.add("Germany");
countryNames.add("Australia");
// Tada... sorted.
这有一些微妙但重要的优点:
TreeSet<String> countyNames
为正确的任务使用正确的集合是编写简短且无错误的代码的关键。在这种情况下,它不那么具有演示性,因为您只保存了一行。但是我已经停止计算我看到某人使用列表的频率,当他们想要确保没有重复时,然后自己构建该功能。或者更糟糕的是,当你真的需要一个地图时,使用两个列表。
不要误会我的意思:使用 Collections.sort 不是错误或缺陷。但是在许多情况下,TreeSet要干净得多。