素朴に行われた場合、インスタンスの反復処理はLinkedList
O(n^2) になる可能性があることに注意してください。具体的には:
List<Object> list = new LinkedList<Object>();
for (int i = 0; i < list.size(); i++) {
list.get(i);
}
これは、反復ごとにリストを最大i
2 回トラバースする必要があるため、効率の点で絶対に恐ろしいことです。を使用する場合は、または Java 5 の拡張ループLinkedList
を必ず使用してください。Iterator
for
for (Object o : list) {
// ...
}
上記のコードは O(n) です。これは、リストがステートフル インプレースで走査されるためです。
上記の手間をすべて回避するには、ArrayList
. これは常に最良の選択であるとは限りませんが (特にスペース効率の点で)、通常は安全な方法です。