List系列集合:

3.1 List集合的常用方法用代码演示一下这几个方法的效果
java 复制代码
public class ListTest1 {
    public static void main(String[] args) {
        // 创建一个ArrayList集合对象(有序、有索引、可以重复)
        List<String> list = new ArrayList<>();
        list.add("蜘蛛精");
        list.add("至尊宝");
        list.add("至尊宝");
        list.add("牛夫人");
        System.out.println(list); // [蜘蛛精, 至尊宝, 至尊宝, 牛夫人]
​
        // 在某个索引位置插入元素
        list.add(2, "紫霞仙子");
        System.out.println(list); // [蜘蛛精, 至尊宝, 紫霞仙子, 至尊宝, 牛夫人]
​
        // 根据索引删除元素, 返回被删除的元素
        System.out.println(list.remove(2)); // 紫霞仙子
        System.out.println(list);// [蜘蛛精, 至尊宝, 至尊宝, 牛夫人]
​
        // 返回集合中指定位置的元素
        System.out.println(list.get(3));
​
        // 修改索引位置处的元素,修改后,会返回原数据
        System.out.println(list.set(3, "牛魔王")); // 牛夫人
        System.out.println(list); // [蜘蛛精, 至尊宝, 至尊宝, 牛魔王]
    }
}
------------------------------------------------
版权声明:本文为CSDN博主「Han_han919」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Han_han919/article/details/161025146
3.2 List集合的遍历方式

List集合相比于前面的Collection多了一种可以通过索引遍历的方式,所以List集合遍历方式一共有四种:

  • 普通for循环(只因为List有索引)

  • 迭代器

  • 增强for

  • Lambda表达式

    java 复制代码
    public class ListTest2 {
        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++){
                //i = 0, 1, 2
                String e = list.get(i);
                System.out.println(e);
            }
    
            System.out.println("--------------");
    
            // 2.增强for遍历
            for(String s : list){
                System.out.println(s);
            }
    
            System.out.println("--------------");
    
            // 3.迭代器遍历
            Iterator<String> it = list.iterator();
            while(it.hasNext()){
                String s = it.next();
                System.out.println(s);
            }
    
            System.out.println("--------------");
    
            // 4.lambda表达式遍历
            list.forEach(s -> System.out.println(s));
        }
    }
    3.3 ArrayList底层的原理(面试题)

    3.4 ArrayList的应用场景

    应用场景:

    1、ArrayList适合: 根据索引查询数据,比如根据随机索引取数据(高效)! 或者数据量不是很大时!

    2、ArrayList不适合: 数据量大的,同时又要频繁的进行增删操作!

    总结:

    1、List系列集合的特点是什么?

    ArrayList、LinekdList :有序,可重复,有索引。

    ​

    2、ArrayList集合的底层是基于什么实现的, 有什么特点呢?

    数组

    特点:

    查询快, 增删慢

    3、ArrayList集合适合什么业务场景?不适合什么业务场景?

    ArrayList适合: 根据索引查询数据,比如根据随机索引取数据(高效)! 或者数据量不是很大时!

    ArrayList不适合: 数据量大的,同时又要频繁的进行增删操作!

    3.5 LinkedList底层原理

    LinkedList底层是链表结构,基于双链表实现的。

    链表结构是由一个一个的节点组成,一个节点由数据值、下一个元素的地址组成。如下图所示:

相关推荐
zrc0070071 小时前
steam无法登录 steam错误 登录时出现错误。请稍后再试。解决办法 steam无法登录解决办法 湖南地区steam DNS问题解决办法
windows·经验分享·游戏·缓存·游戏程序·创业创新·玩游戏
BK贝壳2 小时前
布尔队列 BHA_Queue:入队出队均摊 O(1);附 BHA_Dict
windows
-星空下无敌2 小时前
Windows Docker K8s 安装部署Naocs ,SpringBoot 3.x 4.x 整合Naocs 版本兼容 配置中心、服务注册与发现
windows·docker·nacos·kubernetes·springboot·alibaba
燃烧的枫2 小时前
Windows 下 YOLO11 Pose 的 TensorRT C++ 部署
windows·yolo·tensorrt·1024程序员节·yolo11-pose
深圳恒讯4 小时前
香港云主机硬盘满了怎么办?Linux和Windows在线扩容操作教程
linux·运维·windows
打工仔折腾 AI4 小时前
鸿蒙移动端直连 Windows 远程桌面配置与性能调优实践
人工智能·windows·后端·python·华为·性能优化·harmonyos
Blockbuater_drug1 天前
Dify 1.18 本地部署实战:Windows + WSL2 + Docker,从零跑到本地可用
windows·docker·容器·dify·大模型应用平台
cc_yy_zh1 天前
笔记本关机自动重启解决办法
windows
AlanAshley1 天前
Windows 错误代码 0x80284018:可能原因与解决办法
windows
2501_915909061 天前
Windows 打开 Xcode 工程,编译调试 Xcode 项目并和 Mac 同事协作
ide·windows·vscode·macos·ios·个人开发·xcode