ArrayList集合:底层是数组实现、查询快、增删慢。
LinkedList集合:底层是链表实现、查询慢、增删快。
1 package java.Internet; 2 3 import java.util.ArrayList; 4 import java.util.List; 5 6 /** 7 * @author Sx-Wang 8 * @data 2020-06-05 23:04 9 */ 10 public class ListTest { 11 public static void main (String[] args) { 12 List<String> list = new ArrayList<>();// 创建ArrayList集合 13 list.add("你");//add(E e) 添加e元素 14 list.add(0, "中"); // add(int index,E e ) 在index索引位置添加e元素 15 list.get(0); // get(int index) 获取索引为index的元素 16 list.set(1, "吖"); // set(int index, E element) 将索引index的元素替换为element元素并返回之前的元素 17 list.remove("你"); // remove(E e) 删除指定的元素 18 list.remove(1); // remove(int index) 删除索引值为index的元素并返回 19 20 } 21 }
“LinkedList使用双向链表实现存储,将内存中零散的内存单元通过附加的引用关联起来,形成一个可以按序号索引的线性结构,这种链式存储方式与数组的连续存储方式相比,其实对内存的利用率更高。”
LinkedList集合中包含了大量操作首尾元素的方法,下面来讲讲一些常用的方法
1 package java.Internet; 2 3 import java.util.LinkedList; 4 5 /** 6 * @author Sx-Wang 7 * @data 2020-06-05 23:04 8 */ 9 public class ListTest { 10 public static void main (String[] args) { 11 LinkedList<Integer> linkedList = new LinkedList<>();// 创建LinkedList集合 12 // 添加 13 linkedList.addFirst(1); // 在集合开头添加元素 也可以用push(E e) 方法 一样的效果 14 linkedList.addLast(0); //在集合结尾添加元素 和add(E e) 方法一样 15 // 获取 16 linkedList.getFirst(); // 获取第一个元素 17 linkedList.getLast(); // 获取最后一个元素 18 //注意集合如果清空后在获取就会抛出异常 19 20 /* 21 删除元素 22 public E removeFrist(); 删除并返回第一个元素 也可以用pop() 23 public E removeLast(); 删除最后一个元素并返回 24 */ 25 linkedList.removeFirst(); 26 linkedList.removeLast(); 27 28 } 29 }
ArrayList底层是个数组,但是线程不安全 方法和List方法差不多。
原文:https://www.cnblogs.com/Sx-Wang/p/13052882.html