List集合介面、ArrayList集合、linkedList集合、vector集合
阿新 • • 發佈:2020-08-11
List集合介面
java.util.collection集合(介面)常用的兩個子類集合java.util.List集合(介面)和java.util.Set集合(介面)
java.util.List介面 extends collection介面
List介面的特點:
1.有序的集合(也稱為序列),儲存元素和取出元素的順序是一致的
2.有索引,包含了一些帶索引的方法
3.與set集合不同,允許儲存重複的元素。
List介面中帶索引的方法(特有)
void add(int index, E element);//在特定索引處新增資料,後面索引的資料向後移動一位 E get(int index);//返回指定索引的元素 E remove(int index)//刪除指定索引的元素,後面元素索引向前移動一位,同時返回刪除的元素 E set(int index, E element);//替換指定索引的元素,並返回被替換的元素
注意:操作索引的時候,一定要防止索引越界異常。
package mycollection; import java.util.ArrayList; import java.util.Iterator; import java.util.List; //測試List集合中特有的操作索引來控制元素的方法 public class TestList01 { public static void main(String[] args) { List<String> list = new ArrayList<>(); list.add("a"); list.add("b"); list.add("c"); list.add("d"); list.add("e"); System.out.println(list);//[a, b, c, d, e] //void add(int index, E element);//在特定索引處新增資料,後面索引的資料向後移動一位 //在b與c之間插入“哈” list.add(2,"哈"); System.out.println(list);//[a, b, 哈, c, d, e] //E get(int index);//返回指定索引的元素 //獲取List集合中最後一個元素 String end = list.get(list.size() - 1); System.out.println(end);//e //E remove(int index)//刪除指定索引的元素,後面元素索引向前移動一位,同時返回刪除的元素 String remove = list.remove(2);//跟boolean remove = list.remove("哈");差不多,只不過返回值不一樣 System.out.println(remove);//哈 System.out.println(list);//[a, b, c, d, e] //E set(int index, E element);//替換指定索引的元素,並返回被替換的元素 //將C替換成“替” String replace = list.set(2, "替"); System.out.println(replace); System.out.println(list); //注意:操作索引的時候,一定要防止索引越界異常。 //list.get(5);//丟擲IndexOutOfBoundsException,索引越界異常 //對List遍歷的三種方法 //普通for迴圈 for (int i = 0; i < list.size(); i++) { System.out.print(list.get(i)+"\t"); } System.out.println(); //使用迭代器 Iterator<String> iterator = list.iterator(); while (iterator.hasNext()){ System.out.print(iterator.next()+"\t"); } System.out.println(); //增強for迴圈 for (String s : list) { System.out.print(s+"\t"); } } }
List集合介面的實現子類java.util.ArrayList集合(最常用的List集合)
java.util.ArrayList集合底層是一個數組結構,元素增刪慢,查詢快
ArrayList集合適合多查詢,少增刪的操作
java.util.linkedList集合implements List 介面
Linklist集合特點:(包含List集合特點)
1.底層是一個連表結構:查詢慢,增刪快
2.裡面包含了大量操作首尾元素的方法
注意:使用Linklist集合特有的方法,不能使用多型
public void addFirst(E e)//在列表開頭插入指定元素 public void push(E e)//將元素推入列表(兩者相同) public void addLast(E e)//在列表結尾插入指定元素 public E getFirst()//獲取列表開頭元素 public E getLast() //獲取列表結尾元素 public E removeFirst()//移除並返回第一個元素 public E pop()//移除並返回此列表的第一個元素。(兩者相同) public E removeLast()//移除並返回最後一個元素 public boolean isEmpty()//判斷集合是否為空
package mycollection;
import java.util.LinkedList;
public class TestLinkedList01 {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("d");
list.add("e");
System.out.println(list);//[a, b, c, d, e]
list.addFirst("哈哈");// list.push("哈哈");兩者效果相同
list.addLast("哦哦");
System.out.println(list);//[哈哈, a, b, c, d, e, 哦哦]
System.out.println(list.getFirst());//哈哈
System.out.println(list.getLast());//哦哦
System.out.println(list.removeFirst());//哈哈//相當於System.out.println(list.pop());
System.out.println(list);//[a, b, c, d, e, 哦哦]
System.out.println(list.removeLast());//哦哦
System.out.println(list);//[a, b, c, d, e]
System.out.println(list.isEmpty());//false
list.clear();
System.out.println(list.isEmpty());//true
}
}