0

文字列の配列と追加の文字列が 1 つあります。この文字列と配列の値を使用して、文字列のセットを取得したいと考えています。次に、文字列のセットをアルファベット順に並べ替え、リストの最初の文字列を抽出します。Javaでそれを行う最も簡単な方法は何ですか?

追加した:

私はこのようにしたかった:

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

コンパイル中にエラーは発生しません。しかし、実行中に「UnsopportedOperationException」が発生します。そしてそれは2行目で起こります。

4

3 に答える 3

2

Arrays.asList配列を変更不可能な でラップするため、配列Listに追加しようとすると がスローされUnsupportedOperationExceptionます。新しい aArrayListを作成して要素を追加すると、後で自由に変更できます。

List<String> list = new ArrayList<String>(Arrays.asList(players));
list.add(userName);
于 2010-03-23T21:54:10.083 に答える
1

外部要素を追加して の配列の最小値を取得するだけの場合は、String最初に並べ替えて抽出する必要はありません (これは になりますO(N log N))。でできますO(N)

String minPlayer = Collections.min(Arrays.asList(players));
minPlayer = Collections.min(Arrays.asList(minPlayer, extraPlayer));  
于 2010-03-23T21:22:41.373 に答える
1

配列に値を追加して Arrays.sort で並べ替えるか、アイテムのリストを作成して Collections.sort で並べ替えます。文字列の自然な順序はアルファベット順になります。

于 2010-03-23T19:38:33.493 に答える