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にとって、リストにある特定要素にアクセスするのはより速い方法がない.
MyCollection.java基種インターフェース
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,ArayListMyCollection.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();
}
}