[mw_shl_code=java,true]package com.sort;
import java.util.ArrayList; import java.util.Iterator; import java.util.List;
/** * リストの3種類のトラバーサル * @author オーナー
* */ public class ListTest {
public static void main(String[] args) {
リスト<String>リスト = 新しいArrayList<String>();
list.add("a"); list.add("b"); list.add("c"); list.add("c"); 重複データを追加することも可能です
トラバーサル法1 for(Iterator<String> iterator = list.iterator(); iterator.hasNext(); ){ String value = iterator.next();
System.out.println(value); }
トラバーサル法2 for(文字列値:list){ System.out.println(value); }
トラバーサル法3 for(int i=0; i<list.size(); i++){ System.out.println(list.get(i)); }
} } [/mw_shl_code]
3つの移動の比較分析:
方法1のトラバーサル: 実行中はデータロックが行われ、パフォーマンスはやや劣化します。ループ中に要素を削除したい場合はit.deremoveメソッドしか呼び出せません。
方法2 トラバーサル: 最初のタイプを内部で呼び出します
方法3:移動: 内部的にロックされていないため効率的ですが、マルチスレッドを書く際には並行操作の問題を考慮すべきです
Listインターフェースの主な実装であるArrayListとLinkedListは、このようにトラバースできます ArrayListとLinkedListの比較分析 a) ArrayListの基盤層は配列で実装され、LinkedListの基盤層は双方向リンクリストで実装されています。 b) 挿入や削除操作を行う際はLinkedListを使用するのが良いです。 c) 検索操作を行う際はArrayListを使用するのが適切です。
率直に言えば、それはデータ構造における逐次記憶とチェーン記憶です
|