文章目錄
- List常用方法
- List集合的遍歷方式
- ArrayList底層的原理
- LinkedList底層原理
- 常用方法
List常用方法
//1.創建一個ArrayList集合對象(有序、有索引、可以重復)
List<String> list = new ArrayList<>();
list.add("蜘蛛精");
list.add("至尊寶");
list.add("至尊寶");
list.add("牛夫人");
System.out.println(list); //[蜘蛛精, 至尊寶, 至尊寶, 牛夫人]//2.public void add(int index, E element): 在某個索引位置插入元素
list.add(2, "紫霞仙子");
System.out.println(list); //[蜘蛛精, 至尊寶, 紫霞仙子, 至尊寶, 牛夫人]//3.public E remove(int index): 根據索引刪除元素, 返回被刪除的元素
System.out.println(list.remove(2)); //紫霞仙子
System.out.println(list);//[蜘蛛精, 至尊寶, 至尊寶, 牛夫人]//4.public E get(int index): 返回集合中指定位置的元素
System.out.println(list.get(3));//5.public E set(int index, E e): 修改索引位置處的元素,修改后,會返回原數據
System.out.println(list.set(3,"牛魔王")); //牛夫人
System.out.println(list); //[蜘蛛精, 至尊寶, 至尊寶, 牛魔王]
List集合的遍歷方式
有四種,多了一種可以用索引遍歷的方式
普通for循環,迭代器,增強for,forEach
public class Test_List_for {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("張三");list.add("李四");list.add("王五");//1. 普通for循環for (int i = 0; i < list.size(); i++) {System.out.println(i);// 索引System.out.println(list.get(i));}//2. 增強forfor(String s : list){System.out.println(s);}//3. 迭代器遍歷Iterator<String> it = list.iterator();while(it.hasNext()){System.out.println(it.next());}//4. forEachlist.forEach(s -> System.out.println(s));}
}
ArrayList底層的原理
ArrayList集合底層是基于數組結構實現的,也就是說當往集合容器中存儲元素時,底層本質上是往數組里存數據
- 數組長度不可變,但集合長度可變
數組不可以擴容,底層是創建一個新的數組,把原數組的所有元素都復制到新數組去
LinkedList底層原理
LinkedList底層是鏈表結構,雙向鏈表。可以用來設計棧結構,隊列結構
常用方法
public static void main(String[] args) {// LinkedList模擬隊列:先進先出LinkedList<String> queue = new LinkedList<>();// 入隊queue.addLast("1人");queue.addLast("2人");queue.addLast("3人");queue.addLast("4人");System.out.println(queue);// 出隊System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println("`````````````````");// LinkedList模擬棧:后進先出LinkedList<String> stack = new LinkedList<>();// 入棧 push = addFirststack.addFirst("1ren");stack.addFirst("2ren");stack.push("3ren");stack.push("4ren");System.out.println(stack);// 出棧 pop = removeFirstSystem.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.removeFirst());System.out.println(stack.removeFirst());System.out.println(stack);}