【Java 入门 Day19】 集合篇(上):List 接口,Java 里的 “排队神器”!

发布时间:2026/6/13 17:36:59

【Java 入门 Day19】 集合篇(上):List 接口,Java 里的 “排队神器”! 家人们谁懂啊Java 里的集合简直是新手的 “大型迷宫”每次写代码碰到ArrayList、LinkedList都像在玩 “找不同”分不清谁快谁慢、谁该用在哪。今天咱们先从 List 接口唠起把这个 “排队神器” 扒得明明白白看完保证你再也不被它们搞心态一、集合是什么Java 里的 “万能收纳盒”集合说白了就是 Java 里的万能收纳盒用来存储数量不等的对象比数组灵活多了 —— 数组长度固定集合能自动扩容还自带各种增删改查的方法开发里写代码天天用。集合的相关接口和类都在java.util包里咱们主要从四个点学集合接口的特点、核心方法、实现类、遍历方式。二、Collection 接口所有集合的 “老祖宗”Collection接口是所有单列集合的父接口堪称集合界的 “老祖宗”它的子接口主要有两个List和Set。核心方法开发高频用给你划重点add(Object o)把对象加到集合里相当于 “往收纳盒里塞东西”。contains(Object o)判断集合里有没有这个对象相当于 “找收纳盒里有没有这个东西”。remove(Object o)把对象从集合里删掉相当于 “把东西从收纳盒里拿出来扔掉”。size()获取集合里元素的个数相当于 “数收纳盒里有多少东西”。三、List 接口有序可重复的 “排队神器”List接口是Collection的子接口堪称 Java 里的排队神器特点超明显有序元素按添加顺序排列有下标就像排队一样先来的在前后来的在后。可重复允许元素重复就像排队可以有人插队重复。下标范围0 ~ size()-1和数组一样。1. List 接口的核心方法开发必背除了继承父接口的方法List 还有自己的 “专属技能”add(int index, Object o)把元素插到指定下标位置相当于 “插队”。get(int index)根据下标拿元素相当于 “按排队号找人”。remove(int index)删除指定下标的元素相当于 “把指定位置的人移出队伍”返回被删掉的元素。set(int index, Object o)修改指定下标的元素相当于 “把队伍里的人换掉”返回被修改之前的元素。2. List 的三大实现类面试必背区别List 接口有三个常用实现类ArrayList、Vector、LinkedList它们的底层实现不一样用法场景也完全不同给你唠明白1ArrayList底层数组实现的 “排队快取神器”ArrayList是开发里最常用的 List 实现类底层是数组实现的特点查询快、增删慢就像排队按号找人查询一秒到位但要在中间插人、删人增删后面的人都得挪位置效率低。JDK2.0 版本线程不安全运行效率高。扩容机制JDK1.7 版本创建对象时不会直接分配数组空间第一次add元素时才分配初始长度 10每次扩容 1.5 倍。2VectorArrayList 的 “老大哥”线程安全但慢Vector和ArrayList底层一样是数组但它是 JDK1.0 版本的老古董线程安全但效率低就像排队时每操作一步都要锁门别人不能动虽然安全但慢得要死。现在开发里基本不用了除非是老项目维护。3LinkedList底层链表实现的 “排队增删神器”LinkedList底层是双向链表实现的特点和 ArrayList 正好相反查询慢、增删快就像排队按号找人得从头数查询慢但要在中间插人、删人只需要改一下前后人的 “手拉手”效率超高。线程不安全运行效率高。面试题ArrayList 和 LinkedList 的区别3. List 的三种遍历方式开发常用List 的遍历方式主要有三种给你唠明白下标遍历通过下标for循环遍历用get(i)拿元素java运行for(int i0; ilist.size(); i){ Object obj list.get(i); }forEach 遍历增强 for 循环开发里最常用的底层原理是迭代器遍历java运行for(Object obj : list){ // 直接操作obj就行 }迭代器遍历手动用Iterator遍历java运行Iterator it list.iterator(); while(it.hasNext()){ Object obj it.next(); }今天先唠到这List 接口和它的三大实现类的套路你 get 到了吗下一篇咱们继续唠泛型和 Collections 工具类还有 Set 接口这些开发里的 “集合坑”看完你就再也不会踩了

相关新闻