List接口, ArrayList Vector LinkedList

Collection接口的子接口

子类Vector,ArrayList,LinkedList

1.元素的添加顺序和取出顺序一致,且可重复

2.每个元素都有其对应的顺序索引

方法

  1. 在index = 1 的位置插入一个对象,list.add(1,list2)
  2. 获取指定index位置的元素,Object get(int index)
  3. 返回obj在集合中首次出现的位置,int indexOf(Object obj)
  4. 返回最后出现的位置 int lastIndexOf( Object obj )
  5. 移除指定index位置的元素,并返回 Object remove (int index)
  6. 用ele替换指定index位置的元素 Object set (int index ,Object ele)
  7. 返回fromIndex 到toIndex位置的子集合, List sublist(int fromIndex, int toIndex)

遍历方式

1.Iterator

2.增强for循环

3.普通for循环

java 复制代码
package chapter;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class noStatue {
    public static void main(String[] args) {
        @SuppressWarnings({"all"})
        List list = new ArrayList();
        list.add("jack");
        list.add("wow");

        //迭代器
        Iterator iterator = list.iterator();
        while (iterator.hasNext()) {
            Object next =  iterator.next();
            System.out.println(next);
        }

        //增强for
        for (Object o :list) {
            System.out.println(o);
        }
        
        //普通for循环
        for (int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }

    }
}

ArrayList

  1. ArrayList可以加入多个null
  2. 由数组实现数据存储
  3. 基本等同于Vector,但ArrayList,执行效率高,线程不安全,多线程不建议使用
  4. 底层为对象数组

底层结构与源码分析

p 511

无参构造器,初始容量为0,第一次增加为10,在扩容,则扩容到1.5倍

指定大小的构造器,初始容量为指定,扩容后为1.5倍

Vector

底层也是对象数组,线程同步(安全)

相关推荐
hold?fish:palm4 小时前
24 回文链表
数据结构·c++·链表
qeen878 小时前
【数据结构】自平衡二叉搜索树各种旋转算法原理解析及AVL树的C++实现
数据结构·c++·算法
冻柠檬飞冰走茶9 小时前
PTA基础编程题目集 7-35有理数均值(C++语言实现)
开发语言·数据结构·c++·算法·均值算法
Nil20810 小时前
leetcode 189轮转数组
数据结构·算法·leetcode
依然鸣11 小时前
PTA团体程序设计天梯赛L1真题讲解L1-085-088
数据结构·c++·经验分享·算法·深度优先·pat考试
Brilliantwxx12 小时前
【算法从零到千】【51-54】逆序对(分治+递归算法)
数据结构·算法·排序算法
小星星闪亮登场12 小时前
2026河南萌新联赛第四场--南阳理工学院
数据结构·算法·贪心算法·动态规划·哈希算法·广度优先
土司大王12 小时前
LeetCode hot100——两数之和
数据结构·算法·leetcode
wabs66613 小时前
关于字符串【力扣344.反转字符串的思考】
数据结构·算法·leetcode
LuminousCPP13 小时前
数据结构基础篇(二):顺序表与链表全方位对比|从内存布局到 CPU 缓存理解底层差异
c语言·数据结构·经验分享·链表·缓存