我有一个字符串数组和一个额外的字符串。我想使用这个字符串和数组的值来获取一组字符串。然后我想按字母顺序排序字符串集并提取列表中第一个字符串。在Java中最简单的方法是什么?
增加:
我想这样做:
List<String> playersList = Arrays.asList(players);
playersList.add(userName); // <---------- HERE IS A PROBLEM
Collections.sort(playersList);
编译期间我没有收到任何错误。但在执行过程中,我得到了一个“UnsopportedOperationException”。它发生在第二行。
答案 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));