インターフェースと実装クラスのリスト(収集は続く)
リストはコレクションインターフェイスを継承し、3つの実装クラスがあります
配列リスト
配列リスト、データは配列に格納されます。
ArrayListは可変長配列を実装し、メモリに連続スペースを割り当てます。要素をトラバースし、要素にランダムにアクセスする効率は比較的高い
LinkedList
LinkedListはリンクリストストレージを使用します。要素の挿入と削除時の高効率
ベクター
配列リスト、同期ロックの追加、スレッドセーフ
ArrayListの一般的なメソッド
add(int index、E element)
get(int index)
indexOf(Object o)
lastIndexOf(Object o)
remove(int index)指定された位置にある要素を削除して返します
removeRange(int fromIndex、int toIndex)指定された範囲の要素を削除します(サブクラス継承の使用)
set(int index、E element)
package day2;
import java.util.ArrayList;
import java.util.List;
public class ArrayListDemo {
public static void main(String[] args) {
//List list=new ArrayList();
ArrayList arrayList=new ArrayList();
arrayList.add("a");//默认情况下向末尾添加
arrayList.add("b");
arrayList.add(0,"x"); //装满之后 扩容到原来的1.5倍
System.out.println(arrayList);
System.out.println(arrayList.get(2));
System.out.println(arrayList.indexOf("b"));
arrayList.add(1,"s");
arrayList.sort(new StringC());
}
}
package day2;
import java.util.ArrayList;
import java.util.List;
public class ArrayRange extends ArrayList {
public static void main(String[] args) {
List list=new ArrayList(15);//有参构造方法
list.add("a");
list.add("s");
list.add("d");
list.add("f");
list.add("h");
System.out.println(list.subList(1,3));
}
}
LinkedListの一般的なメソッド
add(int index、Object element)
addFirist(オブジェクト要素)
addLast(オブジェクト要素)
removeFirst()
removeLast()
remove(int index)
getFirst()
getLast()
package day2;
import java.util.LinkedList;
public class LinkedListDemo {
public static void main(String[] args) {
LinkedList list=new LinkedList();
list.add("a");
list.add("s");
list.add("d");
list.add("f");
list.add("g");
list.addFirst("1");
list.addLast("2");
System.out.println(list.get(2));
System.out.println(list.getFirst());
System.out.println(list.getLast());
System.out.println(list);
}
}
package day3;
import java.util.Vector;
public class VectorDemo {
public static void main(String[] args) {
//底层也是数组的实现,线程安全的
Vector v=new Vector();
v.add("a");
v.add("a");
v.add("s");
v.add("d");
v.add("x");
v.add("c");
System.out.println(v);
}
}