1

私はコレクションが初めてで、些細な質問で申し訳ありませんが、Javaチュートリアルで読んだ1つの文について熟考しています。

List は順序付けられた Collection (シーケンスと呼ばれることもあります) です。

それから私が理解したのは、リストに要素を入れると、自動的に順序付けが行われ、単純なコードを実行したため、間違っていることが証明されたということです。

List <String> list = new ArrayList<String>();

list.add("Chris");
list.add("Brian");
list.add("Matt");
list.add("Greg");

for (Iterator<String> it = list.iterator();it.hasNext();) {
    System.out.print(it.next()+"\n");
}

その結果、これはどのような方法でも注文されませんでした:

Chris
Brian
Matt
Greg

だから私の質問は、「リストは順序付けられたコレクションです」とはどういう意味ですか?

ありがとう

4

5 に答える 5

6

Ordered とは並べ替えを意味するのではなく、並べた順序でアイテムが表示されることを意味します。

これは、たとえば、アイテムが配置された順序で並べ替えられず、並べ替え基準に従って並べ替えられる SortedSet や、任意の順序で表示される HashMap とは対照的です。すべて、ハッシュ関数に応じて。

于 2013-06-04T19:13:36.003 に答える
4

List は順序付けられた Collection (シーケンスと呼ばれることもあります) です。

これは、リストが要素の順序を維持することを意味します。つまり、最初に追加した要素はインデックス 0 のままです。2 番目に追加した要素はインデックス 1 のままです。以下同様です。

要素を削除すると、削除された要素の後の要素のインデックス位置が変わりますが、残りの要素は同じ順序のままです。

于 2013-06-04T19:14:46.653 に答える
1

順序付きとは、各要素にインデックスが割り当てられ、そのインデックスによって参照できることを意味します。Set では、物事にはインデックスがありません。

于 2013-06-04T19:12:47.097 に答える
0

簡単に言えば、オブジェクトを特定の順序で配置すると、その順序が維持されるということです。名前を入力したときと同じ順序で名前が表示されることに注意してください。

これを、ランダムな順序で出てくるセット (別のタイプのコレクション) と比較してください (セットには内部的に順序がないため)。これにより、パフォーマンス上の利点が得られます。順序が重要でない場合は通常セットを使用し、重要な場合はリストを使用します。

于 2013-06-04T19:13:53.820 に答える