如何按字母顺序获取数组的值?

时间:2010-03-23 19:37:07

标签: java arrays sorting sql-order-by alphabetical

我有一个字符串数组和一个额外的字符串。我想使用这个字符串和数组的值来获取一组字符串。然后我想按字母顺序排序字符串集并提取列表中第一个字符串。在Java中最简单的方法是什么?

增加:

我想这样做:

List<String> playersList = Arrays.asList(players);
playersList.add(userName); // <---------- HERE IS A PROBLEM
Collections.sort(playersList);

编译期间我没有收到任何错误。但在执行过程中,我得到了一个“UnsopportedOperationException”。它发生在第二行。

3 个答案:

答案 0 :(得分:2)

Arrays.asList使用不可修改的List包装数组,因此当您尝试添加它时会抛出UnsupportedOperationException。你可以做什么创建一个新的ArrayList并添加你的元素,然后你可以随后修改它。

List<String> list = new ArrayList<String>(Arrays.asList(players));
list.add(userName);

答案 1 :(得分:1)

将值附加到数组并使用Arrays.sort对其进行排序,或者创建项目列表并使用Collections.sort对它们进行排序。字符串的自然顺序将按字母顺序排列。

答案 2 :(得分:1)

如果您只想获得带有额外外部元素的String数组的最小值,那么您不必先排序和提取(这将是O(N log N))。您可以在O(N)

中执行此操作
String minPlayer = Collections.min(Arrays.asList(players));
minPlayer = Collections.min(Arrays.asList(minPlayer, extraPlayer));