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);