LinkedList

LinkedList链表实现的原理

链表结构: 查询慢,增删快

查询慢:由于不能直接找到元素的地址,需要上一个元素推导出下一个元素的地址,

这种查询速度较慢

增删快:在添加的时候,只需要更改元素所记录的地址值即可


 LinkedList是方便添加删除的List。

 提供了大量首尾操作

 public void addFirst(E e)    添加首个元素

 public void addLast(E e)     添加最后元素

  public E getFirst()          获取首个元素

  public E getLast()           获取最后元素


 

publicclass Demo01LinkedList {

 

    publicstaticvoid main(String[] args) {

 

        //创建集合对象

        LinkedList<String> list = newLinkedList<String>();

        //向集合中添加元素

        list.add("Jack");

        list.add("Rose");

        list.add("Trump");

        //获取元素

        String name = list.get(1);

        System.out.println(name);

       

        //返回集合的迭代器

        Iterator<String> itr = list.iterator();

        while(itr.hasNext()) {

            String thisName = itr.next();

            System.out.println(thisName);

        }

        System.out.println("=======================");

        //使用增强for循环

        for (String thisName : list) {

            System.out.println(thisName);

        }

       

        System.out.println("======================");

        //做首尾的添加与删除动作

        System.out.println(list);

       

        list.addFirst("LiLei");

        list.addLast("HanMeiMei");

        System.out.println(list);

       

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

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

    }

}



LinkedList是支持栈结构

对应的方法

push压栈

pop弹栈

peek查询出即将要弹出的是哪个元素,检查有没有要弹出的元素



publicclass Demo02stack {

 

    publicstaticvoid main(String[] args) {

 

        //创建栈结构的集合

        LinkedList<String> stack = newLinkedList<String>();

       

        stack.push("Jack");

        stack.push("Rose");

        stack.push("Trump");

       

        System.out.println(stack);

       

        //获取一个元素,此时,由于是栈结构,所以获取的是最后压栈的元素

        String popName = stack.pop();

        System.out.println(popName);

        //弹栈动作,集合中减少元素

        System.out.println(stack);

       

        String peekName = stack.peek();

        System.out.println(peekName);

        //peek查看元素不会减少元素

        System.out.println(stack);

    }

 

}

 

LinkedList是支持队列结构的

对应的方法

offer加入队列

poll离开队列

peek查询出即将要离开队列的是哪个元素,检查有没有要离开队列的元素


publicclass Demo03queue {

 

    publicstaticvoid main(String[] args) {

       

        //创建栈结构的集合

        LinkedList<String> queue = newLinkedList<String>();

       

        queue.offer("Jack");

        queue.offer("Rose");

        queue.offer("Trump");

        System.out.println(queue);

       

        String pollName = queue.poll();

        System.out.println(pollName);

        System.out.println(queue);

       

        String peekName = queue.peek();

        System.out.println(peekName);

        System.out.println(queue);

    }

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值