栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

ArrayList,LinkedList集合底层原理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ArrayList,LinkedList集合底层原理

ArrayList集合底层原理
  • ArrayList底层是基于数组实现的:根据索引定位元素快,增删需要做元素的移位操作
  • 第一次创建集合并添加第一个元素的时候,在底层创建一个默认长度为10的数组

每添加一个元素,size就会向后移,指向下一个要添加元素的位置

当size指向索引10的位置时候,就会自动1.5倍扩容,扩容到15,等

LinkedList集合底层原理 特点

底层数据结构是双链表,查询慢,首尾操作的速度是极快的,所以多了很多首尾操作的特有API。

特有功能

代码演示
  //栈
  LinkedList stack = new LinkedList<>();
  //入栈,压栈
  stack.addFirst("第一颗子弹");
  stack.addFirst("第二颗子弹");
  stack.addFirst("第三颗子弹");
  stack.addFirst("第四颗子弹");
  System.out.println(stack);//[第四颗子弹,第三颗子弹,第二颗子弹,第一颗子弹,]
//出栈,弹栈
stack.removeFirst();
stack.removeFirst();
stack.removeFirst();
System.out.println(stack);//[第一颗子弹]

//队列
LinkedList queue = new LinkedList<>();
//入队
queue.addLast("1号");
queue.addLast("2号");
queue.addLast("3号");
queue.addLast("4号");
System.out.println(queue);//[1号,2号,3号,4号]

//出队

queue.removeFirst();
queue.removeFirst();
queue.removeFirst();
System.out.println(queue);//[4号]

  LinkedList stack = new LinkedList<>();
        // 入栈 压栈 (push)
        stack.push("第1颗子弹");
        stack.push("第2颗子弹");
        stack.push("第3颗子弹");
        stack.push("第4颗子弹");
        System.out.println(stack);

        // 出栈  弹栈 pop
        System.out.println(stack.pop());
        System.out.println(stack.pop());
        System.out.println(stack.pop());
        System.out.println(stack);

    }
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/871343.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号