List接口和LinkedList类
来自CloudWiki
LinkedList
LinkedList类提供了一个双向链表数据结构,所以针对频繁的插入和删除元素使用LinkedList类效率较高,它适合实现栈和队列。
LinkedList与ArrayList比较:
LinkedList中插入元素很快,而ArrayList中插入元素很慢 LinkedList中随机访问很慢,而ArrayList中随机访问很快
import java.util.*; /*本类对应实训: */ public class MainClass { public static void main(String[] args) { LinkedList<Integer> linkedList = new LinkedList<>(); /************************** 增添元素 ************************/ linkedList.addFirst(0); // 添加元素到列表开头 linkedList.addFirst(0); // 添加元素到列表开头 linkedList.addLast(3); // 添加元素到列表结尾 linkedList.addLast(3); // 添加元素到列表结尾 linkedList.add(2,2); // 在指定位置添加元素 System.out.println("After adding: " + linkedList); // 删除元素 System.out.println("removeFirst(): " + linkedList.removeFirst()); // 移除并返回此列表的第一个元素 System.out.println("removeLast(): " + linkedList.removeLast()); // 移除并返回此列表的最后一个元素 linkedList.removeFirstOccurrence(3); linkedList.removeLastOccurrence(3); // 从此列表中移除最后一次出现的指定元素(从头部到尾部遍历列表) System.out.println("After remove:" + linkedList); //查找元素 System.out.println("getFirst(): " + linkedList.getFirst()); // 返回此列表的第一个元素 System.out.println("getLast(): " + linkedList.getLast()); // 返回此列表的最后一个元素 System.out.println("get(1): " + linkedList.get(1)); // 返回此列表中指定位置处的元素 System.out.println("contains(1) is :" + linkedList.contains(1)); // 判断此列表包含指定元素,如果是,则返回true System.out.println("size is : " + linkedList.size()); // 返回此列表的元素个数 linkedList.add(3); System.out.println("indexOf(3): " + linkedList.indexOf(3)); // 返回此列表中首次出现的指定元素的索引 System.out.println("lastIndexOf(3): " + linkedList.lastIndexOf(3));// 返回此列表中最后出现的指定元素的索引 //改动元素 System.out.println("-----------------------------------------"); linkedList.set(1, 3); // 将此列表中指定位置的元素替换为指定的元素 System.out.println("After set(1, 3):" + linkedList);