- 私トラバーサルのための
このトラバーサルが実行されるランダム・選択の組を横断、(1)と、非常に高速で、設定された設定を取得するような速度のため(10000)を取得すると、そのような底の配列で、添字に応じて設定されたアドレスを知ることができます計算されたシフト量はすぐに要素を見つけます
mybaitクエリリスト型のArrayListのオハイオ州で返されます
パブリック 静的 ボイドメイン(文字列[]引数){ リスト <整数>リスト= 新規のArrayList <> (10_000)。 以下のために(int型 ; iは<10_000 I ++は、I = 0 ){ list.add(i)を、 } int型のサイズ= はlist.size()。 以下のために(int型 ; iは、サイズ<I ++は、I = 0 ){ handleSomeThing(); } } パブリック 静的 ボイドhandleSomeThing(){ }
- 反復処理
ランダム・インターフェイスに設定され実装されていない、(10000)私は上記の横断のためのためのリスト一覧の取得(0)の下でパフォーマンスの低下、の、使用、および取得することができないだけで0で速度の大きな違いになります1 10000 2を見つけるために、1を発見...そして要素の場所を見つけます。
それ以外の場合は、例外がスローされます、あなたは、コレクションのDeleteメソッドを使用することはできません、時間をかけて繰り返し処理を使用します
パブリック 静的 ボイドメイン(文字列[]引数){ リスト <整数>リスト= 新しい LinkedListの<> (); 以下のために(int型 ; iは<10_000 I ++は、I = 0 ){ list.add(i)を、 } イテレータ <整数>イテレータ= list.iterator()。 一方、(iterator.hasNext()){ 整数次 = iterator.next()。 handleSomeThing(); } } パブリック 静的 ボイドhandleSomeThing(){ }
- トラバーサルのためのスーパー
底部には、イテレータで達成されます
パブリック 静的 ボイドメイン(文字列[]引数){ リスト <整数>リスト= 新しい LinkedListの<> (); 以下のために(int型 ; iは<10_000 I ++は、I = 0 ){ list.add(i)を、 } のための(整数I:リスト){ handleSomeThing()。 } } パブリック 静的 ボイドhandleSomeThing(){ }
- ストリームトラバースjava8
これは、マルチスレッドトラバース開き、次のコードバーを試してみてください
パブリック 静的 ボイドメイン(文字列[]引数){ リスト <整数>リスト= 新しい LinkedListの<> (); 以下のために(int型 ; iは<10_000 I ++は、I = 0 ){ list.add(i)を、 } 長いのstartTime = にSystem.currentTimeMillis(); list.parallelStream()forEachの(整数。 - > { handleSomeThing(); }); 長い endTimeは= にSystem.currentTimeMillis(); System.out.println(endTimeの - のstartTime)。 } 公共の 静的な 無効handleSomeThing(){ 試みる{ のThread.sleepを( 10 )。 } キャッチ(InterruptedExceptionある電子){ e.printStackTrace(); } }