java学习日记20230412-LinkedList

LinkedList全面说明

  • LinkedList底层实现了双想链表和双端队列的特点;
  • 可以添加人意元素,可重复,包括null
  • 线程不安全,没有实现同步
  • LinkedList维护了first和last两个属性,分别指向首节点和尾节点
  • 每个节点Node对象,里面又维护了prev,next,item三个属性,其中通过prev指向前一个,通过next指向后一个节点,最终实现双向链表
  • LinkedList元素的添加和删除,不是通过数组完成的,相对来说效率较高
  • Node示例
    
    public class LinkedListExercise {
        public static void main(String[] args) {
            LinkedList<Object> objects = new LinkedList<>();
    
            Node jack = new Node("jack");
            Node tom = new Node("tom");
            Node laohan = new Node("laohan");
            Node cs = new Node("cs");
    
            jack.next = tom;
            tom.next = cs;
            laohan.pre = cs;
            cs.next=laohan;
            cs.pre=tom;
            tom.pre = jack;
            Node first = jack;
            Node last = laohan;
            while(true){
                if(first == null){break;}
                System.out.println(first);
                first = first.next;
            }
        }
    }
    
    //模拟node节点
    class Node{
        public Object item;
        public Node next;
        public Node pre;
    
        public Node(Object item) {
            this.item = item;;
        }
    
        @Override
        public String toString() {
            return "Node{" +
                    "item=" + item +
                    '}';
        }
    }
  • public class LinkedListCRUD {
        public static void main(String[] args) {
            //初始化
            LinkedList<Object> objects = new LinkedList<>();
            objects.add(1);
            objects.add(2);
            objects.add(3);
            System.out.println(objects);
    
            objects.remove();
            System.out.println(objects);
            //修改
            objects.set(1,4);
            System.out.println(objects);
            //获取
            System.out.println(objects.get(1));
            //迭代器循环
            Iterator iterator =objects.listIterator();
    
            while(iterator.hasNext()){
                System.out.println(iterator.next());
            }
            //增强for循环
            for (Object o :objects) {
                System.out.println(o);
            }
    
        }
    }
posted @   、子夜  阅读(14)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示