Java中集合类的常见使用方法(1)

本文详细介绍了Java中的三种集合框架:ArrayList、Vector和LinkedList。ArrayList以其默认1.5倍扩容和快速查找特性被广泛使用;Vector与ArrayList类似但线程安全;LinkedList作为双向链表,适合频繁的增删操作。通过示例代码展示了它们的常用方法,如添加、删除、查找等操作,以及各自的特点和适用场景。
摘要由CSDN通过智能技术生成

Collection集合:

①ArrayList:比Vector速度快,默认扩容1.5倍

        ArrayList<Integer> q1 = new ArrayList<>();
        q1.add(11);
        q1.add(22);

        //ArrayList(集合/动态数组) :支持自动改变大小,对于增删慢,查找快
        ArrayList<Integer> data = new ArrayList<>();//默认构造一个10空间的数组,如果存储满,将按照1.5倍扩容
        System.out.println("此时列表中有数据吗?如果没有请输出true:"+data.isEmpty());//如果此列表不包含任何元素,则返回 true 。
            boolean a1 = data.add(100);//默认在列表尾部添加数据,此时100在0坐标
        System.out.println("a1添加成功了吗?"+a1);//是否添加成功
            boolean a1copy = data.add(100);//可以重复添加
        System.out.println("a1copy添加成功了吗?"+a1copy);//是否添加成功
            data.add(0,198);//在下标0下存储数据198,100为1坐标
            data.addAll(1,q1);//从1位置添加q1列表的数据,100为3坐标
            boolean a2 = data.contains(11);
        System.out.println("列表中是否含有数字11?"+a2);
            data.ensureCapacity(10);//将列表扩容到20
            Integer a3 = data.get(0);//返回下标为数字8的数据
        System.out.println("此时0下标是数据为"+a3);
            int a4 = data.indexOf(100);
        System.out.println("数据100此时的坐标为"+a4);
            int a5 = data.set(3,200);//用数据200替换下标为3的100
        System.out.println("被替换的数据为"+a5);
            data.remove(1);//删除下标为1的数据11
            int a6 = data.lastIndexOf(11);//返回此列表中指定元素最后一次出现的索引,如果此列表不包含该元素,则返回-1。
        System.out.println("11是否存在"+a6);//因为11被remove所以输出-1
            int size = data.size();//返回数组列表中的元素数
        System.out.println("列表中共有几个数据"+size);
        System.out.println(data);//输出data数据
            data.clear();//清空数据
        System.out.println(data);//输出data数据

运行结果:

②Vector:大部分和ArrayList差不多,Vector是同步的,和ArrayList相比线程更安全一些,存取数据时和ArrayList一样,扩容增量为0,需要指定扩容量,如果扩容增量为0,默认扩容翻一倍

③LinkedList:双向链表,增删快,查找慢

        LinkedList<Integer> data = new LinkedList<>();
        data.add(1);
        data.addFirst(0);//在链表首部添加0
        data.addLast(2);//在链表尾部添加2
        System.out.println(data);
        Integer i = data.removeFirst();//删除链表首部元素
        System.out.println("链表首部被移除的元素是"+i);
        System.out.println(data);
        data.clear();
        //压栈
        data.push(996);
        data.push(355);
        System.out.println(data);
        //弹栈
        data.pop();
        System.out.println(data);//先进后出

运行结果:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值