この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 13604|答える: 0

[JavaSE] Javaにおけるリストコレクションの走査と2つの実装クラスの比較解析

[リンクをコピー]
掲載地 2015/01/04 13:29:38 | | |
[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を使用するのが適切です。


率直に言えば、それはデータ構造における逐次記憶とチェーン記憶です




先の:jstlタグ&lt;c:if&gt;の使い方
次に:java:list和set集合的遍历
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com