当前位置: 首页 > news >正文

Java :List,LinkedList,ArrayList

文章目录

  • List常用方法
  • List集合的遍历方式
  • ArrayList底层的原理
  • LinkedList底层原理
    • 常用方法

List常用方法

在这里插入图片描述

//1.创建一个ArrayList集合对象(有序、有索引、可以重复)
List<String> list = new ArrayList<>();
list.add("蜘蛛精");
list.add("至尊宝");
list.add("至尊宝");
list.add("牛夫人"); 
System.out.println(list); //[蜘蛛精, 至尊宝, 至尊宝, 牛夫人]//2.public void add(int index, E element): 在某个索引位置插入元素
list.add(2, "紫霞仙子");
System.out.println(list); //[蜘蛛精, 至尊宝, 紫霞仙子, 至尊宝, 牛夫人]//3.public E remove(int index): 根据索引删除元素, 返回被删除的元素
System.out.println(list.remove(2)); //紫霞仙子
System.out.println(list);//[蜘蛛精, 至尊宝, 至尊宝, 牛夫人]//4.public E get(int index): 返回集合中指定位置的元素
System.out.println(list.get(3));//5.public E set(int index, E e): 修改索引位置处的元素,修改后,会返回原数据
System.out.println(list.set(3,"牛魔王")); //牛夫人
System.out.println(list); //[蜘蛛精, 至尊宝, 至尊宝, 牛魔王]

List集合的遍历方式

有四种,多了一种可以用索引遍历的方式
普通for循环,迭代器,增强for,forEach

public class Test_List_for {public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("张三");list.add("李四");list.add("王五");//1. 普通for循环for (int i = 0; i < list.size(); i++) {System.out.println(i);// 索引System.out.println(list.get(i));}//2. 增强forfor(String s : list){System.out.println(s);}//3. 迭代器遍历Iterator<String> it = list.iterator();while(it.hasNext()){System.out.println(it.next());}//4. forEachlist.forEach(s -> System.out.println(s));}
}

ArrayList底层的原理

ArrayList集合底层是基于数组结构实现的,也就是说当往集合容器中存储元素时,底层本质上是往数组里存数据
在这里插入图片描述

  1. 数组长度不可变,但集合长度可变
    数组不可以扩容,底层是创建一个新的数组,把原数组的所有元素都复制到新数组去

LinkedList底层原理

LinkedList底层是链表结构,双向链表。可以用来设计栈结构,队列结构
在这里插入图片描述

常用方法

在这里插入图片描述

public static void main(String[] args) {// LinkedList模拟队列:先进先出LinkedList<String> queue = new LinkedList<>();// 入队queue.addLast("1人");queue.addLast("2人");queue.addLast("3人");queue.addLast("4人");System.out.println(queue);// 出队System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println(queue.removeFirst());System.out.println("`````````````````");// LinkedList模拟栈:后进先出LinkedList<String> stack = new LinkedList<>();// 入栈  push = addFirststack.addFirst("1ren");stack.addFirst("2ren");stack.push("3ren");stack.push("4ren");System.out.println(stack);// 出栈  pop  = removeFirstSystem.out.println(stack.pop());System.out.println(stack.pop());System.out.println(stack.removeFirst());System.out.println(stack.removeFirst());System.out.println(stack);}
http://www.lryc.cn/news/588938.html

相关文章:

  • 23种设计模式--#1工厂模式
  • CodeRush AI 助手进驻 Visual Studio:AiGen/AiFind 亮相(一)
  • AI Agent 开发
  • 【Qt】 设计模式
  • SQLite技术架构解析,适用场景有哪些?
  • 设计模式之对象池模式
  • 深入理解设计模式:组合模式(Composite Pattern)
  • kotlin的自学笔记1
  • python deptry触发镜像构建失败
  • 20250715使用荣品RD-RK3588开发板在Android13下接入USB3.0接口的红外相机
  • 前端Vue.js面试题(4)
  • OSPFv3中LSA参数
  • Web3.0 学习方案
  • 前端开发数据缓存方案详解
  • 医疗资质OCR智能审核:让合规管理更高效、更精准
  • 2025-07-15通过边缘线检测图像里的主体有没有出血
  • 【Docker基础】Dockerfile构建与运行流程完全指南:从原理到实践优化
  • Spring MVC2
  • 操作系统——进程
  • 前端-CSS-day4
  • CSS 高阶使用指南
  • Python 函数:从“是什么”到“怎么用”的完整指南
  • QT 中各种坑
  • 【Qt】QWidget核心属性
  • Django基础(二)———URL与映射
  • WSI中sdpc格式文件学习
  • 函数柯里化详解
  • 知识增强型Agent开发新范式:基于ERNIE-4.5的检索增强生成架构实践
  • ubuntu22.04 软创建 RAID1 与配置流程
  • Ubuntu 安装