ListとArayList、LinkListの違い

2818 ワード

インターフェースList<E>はインターフェースである.
ArayList<E>は、Listインターフェースを実現したクラスであり、List内で定義されているすべての方法が実現されたクラスである.
1.ArayListは、動的配列に基づくデータ構造を実現し、リンクテーブルに基づくLinked Listのデータ構造である.
2.ランダムアクセスgetとsetに対して、ArayListはLinked Listより優れていると思います.Linked Listはポインタを移動しますから.
3.追加と削除操作addとremoveに対して、Linded ListはArayListがデータを移動するために優位を占めています.
一.時間の複雑さ
 
まず重要な点は、ArayListの内部実装は基礎的なオブジェクト配列に基づいているので、リスト内の任意の要素にget方法を使用してアクセスするときは、LinkdListよりも速い速度であることである.Linked Listでのget方法は、リストの端から順にチェックし、他端までチェックします.Linked Listにとって、リストにある特定要素にアクセスするのはより速い方法がない.
 eg:
List  :
List list = new ArrayList();//     ArrayList   
List list = new Vector();//     Vector    
集合をシミュレートする.List,Collection,ArayList
MyCollection.java基種インターフェース
package com.sun.test;

public interface MyCollection {
public void Sayname();
}
MyList .java
 package com.sun.test; 
  

public interface MyList extends MyCollection {
    public void say();
}

MyArrayList.java               
package com.sun.test;

public class MyArrayList implements MyList {

    public void say() {
        // TODO Auto-generated method stub
        System.out.println(" List");
    }

    public void Sayname() {
        // TODO Auto-generated method stub
        System.out.println(" Collection");
    }

}


TestList.javaインターフェースのタイプが違っています.newから出てくるオブジェクトが実現できる方法も違います.
package com.sun.test;

public class TestList {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        MyList mylist = (MyList) new MyArrayList();
        mylist.say();
        mylist.Sayname();
        
        MyCollection mylist2 = (MyCollection) new MyArrayList();
        
        mylist2.Sayname();
    }

}