Java LinkedList 学习与总结

JDK1.8

构造方法

  1. LinkedList() 一个空的LinkedList
  2. LinkedList(Collection c) 可将一个集合初始化为LinkedList

常用方法

  1. add(E e) 添加元素,尾部添加,返回boolean
  2. add(int index, E element) 指定索引处添加元素, void
  3. add(Collection c)可将一个集合的元素添加至末尾处,boolean
  4. add(int index, Collection c)可将一个集合的元素添加指定索引处,boolean
  5. addFirst(E e) 头部插入元素, void
  6. addLast(E e) 尾部插入元素,void
  7. clear() 清除元素,void
  8. clone() 克隆一个副本,Object
  9. contains(Object o) 是否包含某个元素, boolean
  10. element() 检索头部元素,不删除,返回对应元素类型
  11. get(int index) 获取索引处元素值, 返回对应元素类型
  12. getFirst() 获取头部元素值,返回对应元素类型
  13. getLast() 获取尾部元素值,返回对应元素类型
  14. indexOf(Object o) 元素o首次出现的位置,没有返回-1
  15. lastIndexOf(Object o) 元素o逆向首次出现的位置,没有返回-1
  16. listIterator(int index) 返回从索引处开始的迭代器list
  17. offer(E e) 尾部添加元素,boolean
  18. offerFirst(E e) 头部添加元素, boolean
  19. offerLast(E e) 尾部添加元素, boolean
  20. peek()获取头部元素值,返回对应元素类型
  21. peekFirst()获取头部元素值,返回对应元素类型
  22. peekLast() 获取尾部元素值,返回对应元素类型
  23. poll() 检索头部并删除头部元素,返回检索元素值
  24. pollFrist()检索头部并删除头部元素,返回检索元素值
  25. pollLast() 检索尾部并删除头部元素,返回检索元素值
  26. remove() 检索头部并删除头部元素,返回检索元素值
  27. remove(int index) 删除索引处元素,返回检索元素值
  28. remove(Object o)删除第一次出现的o元素, boolean
  29. removeFirst() 删除头部元素,返回元素值
  30. removeFirstOccurrence(Object o) 删除第一次出现的o元素, boolean
  31. removeLast()删除尾部元素,返回元素值
  32. removeLastOccurrence(Object o)删除逆向第一次出现的o元素, boolean
  33. set(int index, E element) 把索引处的位置的值设置为element, 返回元素值
  34. size() 返回list长度
  35. toArray() 返回数组类型,具体用法看下面实践内容
  36. pop() 尾部出栈一个元素,返回元素值
  37. push(E e) 尾部插入一个元素,void

实践代码

public static void main(String[] args){
        //构造方法
        LinkedList a = new LinkedList<>();//默认长度为10
        HashSet hs = new HashSet();
        hs.add("a");
        hs.add("b");
        hs.add("c");
        LinkedList c = new LinkedList<>(hs);//可以将一个实现Collection接口的类初始化

        System.out.println("默认构造函数长度:"+a.size());

        System.out.println("Collection初始化为LinkedList:"+c);

        a.add("a1");//添加至末尾
        a.add(0,"a2");//该方法只能在a的长度以内插入,否则抛出异常报错
        System.out.println("添加元素"+a);
        a.addAll(hs);//添加Collection元素
        System.out.println("添加集合元素"+a);
        a.addAll(0, hs);//在指定位置添加Collection元素
        System.out.println("指定索引处添加元素"+a);

        a.addFirst("first");//头部添加元素
        a.addLast("end");//尾部添加元素

        LinkedList d = (LinkedList)a.clone();//克隆元素
        System.out.println("clone后的结果:"+d);
        d.clear();
        System.out.println("clear后的结果:"+d);
        System.out.println("是否包含某一个元素:"+a.contains("a"));
        System.out.println("通过索引获取某一个元素:"+a.get(0));
        System.out.println("检索头部元素:"+a.element());
        System.out.println("通过获取第一个元素:"+a.getFirst());
        System.out.println("通过获取最后一个元素:"+a.getLast());

        System.out.println("元素首次出现的索引位置:"+a.indexOf("a"));
        System.out.println("判断是否为空:"+a.isEmpty());

        System.out.println("最后一个位置处添加元素:"+a.offer("offer") + a);
        System.out.println("第一个位置处添加元素:"+a.offerFirst("offerFirst") + a);
        System.out.println("最后一个位置处添加元素:"+a.offerLast("offer") + a);


        System.out.println("检索头部元素:"+a.peek());
        System.out.println("通过获取第一个元素:"+a.peekFirst());
        System.out.println("通过获取最后一个元素:"+a.peekLast());

        System.out.println("检索头部元素并删除:"+a.poll() + a);
        System.out.println("检索头部元素并删除:"+a.pollFirst() + a);
        System.out.println("检索尾部元素并删除:"+a.pollLast() + a);

        System.out.println("获取尾部元素并出栈:"+a.pop() + a);
        a.push("push");
        System.out.println("入栈后:"+a);



        System.out.println("移除索引位置上的元素:"+a.remove(0));
        System.out.println(a);
        System.out.println("移除首次出现的元素:"+a.remove("a1"));//返回boolean
        System.out.println(a);

        System.out.println("移除头部的元素:"+a.remove());//返回元素值
        System.out.println(a);

        System.out.println("移除头部的元素:"+a.removeFirst());//返回元素值
        System.out.println(a);

        a.addLast("a2");
        System.out.println(a);

        System.out.println("移除逆向首次出现的元素:"+a.removeLastOccurrence("a2") + a);//返回boolean

        System.out.println("移除尾部的元素:"+a.removeLast() + a);//返回元素值
        a.set(1,"1");
        System.out.println(a);
//        String[] aa = (String[])a.toArray();
//        System.out.println(aa);
        String[] bb = new String[a.size()];
        a.toArray(bb);
        System.out.println(bb);

        // 循环迭代

        for(String str: a){
            System.out.print(str+" ");
        }
        System.out.println();
        //Iterator 迭代

        Iterator it = a.iterator();
        while(it.hasNext()){
            System.out.print(it.next()+" ");

        }
        System.out.println();
        //forEach 迭代循环, java1.8中含有的
        a.forEach(show->{
            System.out.print(show+" ");
        });
        System.out.println();
        ListIterator it1 = a.listIterator();
        while(it1.hasNext()){![在这里插入图片描述](https://img-blog.csdnimg.cn/20190315101248987.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3p4eDkwMTIyMQ==,size_16,color_FFFFFF,t_70)
            System.out.print(it1.next()+" ");
        }
        System.out.println();

    }

实践结果

Java LinkedList 学习与总结_第1张图片

你可能感兴趣的:(Java)