ArrayList、List特点:查询快、增删慢
链表特点:查询慢,增删快
案例
package day29_collection集合体系; import java.util.ArrayList; import java.util.List; /* * List: * 有序的(存储和读取的顺序是一致的) * 有整数索引 * 允许重复的 * * List的特有功能: * void add(0, E element) * E get(int index) * E remove(int index) * E set(int index, E element) * * 增删改查 */ public class ListDemo { public static void main(String[] args) { List li = new ArrayList(); li.add("hello"); li.add("world"); li.add("java"); li.set(1,"aa"); //将指定索引位置的元素替换为指定元素,并将原先的元素返回 li.remove(2); //删除指定元素并返回 for(int i=0;i<li.size();i++) { System.out.println(li.get(i)); } } }
package day29_collection集合体系; import java.util.LinkedList; /* * List的常用子类: * ArrayList * 底层是数组结构,查询快,增删慢 * LinkedList * 底层结构是链表,查询慢,增删快 * * 如何选择使用不同的集合? * 如果查询多,增删少,则使用ArrayList * 如果查询少,增删多,则使用LinkedList * 如果你不知道使用什么,则使用ArrayList * * LinkedList的特有功能: * void addFirst(E e) * void addLast(E e) E getFirst() E getLast() E removeFirst() E removeLast() * */ public class LinkedListDemo { public static void main(String[] args) { LinkedList kl = new LinkedList(); kl.add("hello"); kl.add("wrold"); kl.addFirst("java");//将元素添加到索引为0的位置 kl.addLast("android");//将元素添加到索引为size()-1的位置 System.out.println(kl.getFirst()); System.out.println(kl.getLast()); System.out.println(kl.removeFirst()); System.out.println(kl); } }