List介面(動態陣列)

2022-08-13 03:54:10 字數 2711 閱讀 4372

list集合類中元素有序且可重複

jdk7

構造器

arraylist list = new arraylist();

新增資料

list.add(123)

結論:建議使用帶參的構造器(避免在中間時擴容)

arraylist list = new arraylist(int capacity)

jdk8

構造器

arraylist list = new arraylist();

新增資料

list.add(123)

結論

linkedlist list = new linkedlist();

內部宣告了node型別的first和last屬性,預設值為null

list.add(123);

將123封裝到node中,建立了node物件

其中node定義為(原始碼),體現了linkedlist雙向鍊錶的特徵:

private static class node

}

三個類都實現了list介面,儲存資料的特點相同(有序、可重複的資料)

collection中的方法都可用

add(int index , object eles)

在index位置開始,將eles中的所有元素新增進來

arraylist list = new arraylist();

list.add(123);

list.add("ann");

list.add(new students("tom",18,90));

list.add(987);

list.add(3,"aa");

system.out.println(list);//[123, ann, students, aa, 987]

addall(int index , collection eles)

從index位置開始將eles中的所有元素新增進來

arraylist list = new arraylist();

list.add(123);

list.add("ann");

list.add(new students("tom",18,90));

list.add(987);

arraylist arraylist = new arraylist();

arraylist.add(123);

arraylist.add("lisa");

list.addall(arraylist);

system.out.println(list);//[123, ann, students, 987, 123, lisa]

注意使用的是add()還是addall():

get(int index)

獲取指定index位置的元素

system.out.println(list.get(1));//ann

indexof(object obj)

返回obj在當前集合中首次出現的位置

system.out.println(list.indexof(123));//0

lastindexof(object obj)

返回obj在當前集合中最後一次出現的位置

system.out.println(list.lastindexof(123));//4

remove(int index)

移除指定index位置元素,並返回此元素

system.out.println(list.remove(1));//ann

system.out.println(list);//[123, students, 987, 123, lisa]

注意和collection介面中的remove方法區分

set(int index , object ele)

設定指定index位置的元素為ele

system.out.println(list);//[123, students, 987, 123, lisa]

list.set(2,789);

system.out.println(list);//[123, students, 789, 123, lisa]

sublist(int fromindex , int toindex)

返回從fromindex到toindex位置的子集合(左閉右開)

system.out.println(list);//[123, students, 789, 123, lisa]

system.out.println(list.sublist(1, 3));//[students, 789]

動態陣列vector和List

陣列是我們用的非常多的一種資料結構.儲存一組物件時首先想到的就是用它.它的優點乙個是因為在記憶體中連續分配,所以通過下標索引訪問非常快.二個是使用簡單,取值賦值修改都很方便.c 中我們一般像這樣定義乙個陣列int numarr 或者int numarr 3 而c 中是這樣int numarr 靜態陣...

List轉換陣列 陣列轉換List

陣列轉list package listtoarray import j a.util.arraylist import j a.util.arrays import j a.util.collections import j a.util.list import j a.util.stream.c...

List介面分析

list介面是繼承自collection介面的,有關collection介面 list是一種有序的collection,可以通過索引訪問集合中的資料,看看list中 有哪些方法 1.int size 從collection中繼承 2 boolean isempty 從collection中繼承 3....