美文网首页
从屌丝到架构师的飞越(集合篇)-LinkedList

从屌丝到架构师的飞越(集合篇)-LinkedList

作者: 走着别浪 | 来源:发表于2019-06-24 11:16 被阅读0次

    一.介绍

    LinkedList不同于前面两种List,它不是基于数组的,所以不受数组性能的限制。

    它每一个节点(Node)都包含两方面的内容:

    A、节点本身的数据(data);

    B、下一个节点的信息(nextNode)。

    所以当对LinkedList做添加,删除动作的时候就不用像基于数组的ArrayList一样,必须进行大量的数据移动。只要更改nextNode的相关信息就可以实现了,这是LinkedList的优势。

    LinkedList实现了List接口,允许null元素。此外LinkedList提供额外的get,remove,insert方法在LinkedList的首部或尾部。这些操作使LinkedList可被用作堆栈(stack),队列(queue)或双向队列(deque)。

    二.知识点介绍

    1、LinkdedList链表操作

    2、LinkedList常用方法

    三.上课对应视频的说明文档

    1、LinkdedList链表操作

    LinkedList集合数据存储的结构是链表结构。方便元素添加、删除的集合。实际开发中对一个集合元素的添加与删除经常涉及到首尾操作,而LinkedList提供了大量首尾操作的方法。如下图

    LinkedList是List的子类,List中的方法LinkedList都是可以使用,这里就不做详细介绍,我们只需要了解LinkedList的特有方法即可。在开发时,LinkedList集合也可以作为堆栈,队列的结构使用。

    方法演示:

    LinkedList<String> link = new LinkedList<String>();

    //添加元素

    link.addFirst("abc1");

    link.addFirst("abc2");

    link.addFirst("abc3");

    //获取元素

    System.out.println(link.getFirst());

    System.out.println(link.getLast());

    //删除元素

    System.out.println(link.removeFirst());

    System.out.println(link.removeLast());

    while(!link.isEmpty()){ //判断集合是否为空

    System.out.println(link.pop()); //弹出集合中的栈顶元素

    }

    2、LinkedList常用方法

    案例1:

    importjava.util.*;

    public class LLTest{

    public static void main(String args[]){

    List l=new LinkedList();

    for(inti=0;i<=5;i++){

    l.add("a"+i);

    }

    l.add(3,"a100");  //添加

    System.out.println(l);

    l.set(6,"a200");  //更改

    System.out.println(l);

    System.out.println(l.get(2));  //获取值

    System.out.println(l.indexOf("a3"));  //下标

    l.remove(1);    //移除

    System.out.println(l);

    System.out.println(l.indexOf("a3"));

    }

    }

    案例2:

    importjava.util.*;

    public class LLTest2{

    public static void main(String args[]){

    List l=new LinkedList();

    l.add("a1");

    l.add("a2");

    System.out.println(l);

    l.addFirst("a100"); //添加到头

    l.addLast("a200");  //添加到尾

    System.out.println(l);

    System.out.println(l.getFirst());  //获取头

    System.out.println(l.getLast());    //获取尾

    l.removeFirst();    //移除头

    l.removeLast(); //移除尾

    System.out.println(l);

    }

    }

    相关文章

      网友评论

          本文标题:从屌丝到架构师的飞越(集合篇)-LinkedList

          本文链接:https://www.haomeiwen.com/subject/rkhiqctx.html