首页 > 其他分享 >集合2 ArrayList

集合2 ArrayList

时间:2023-01-03 14:47:33浏览次数:48  
标签:ArrayList list System println add 集合 out

ArrayList

public class List {

    public static void main(String[] args) {
        //TODO ArrayList : Array + List
        //List : 列表,清单  -- 按照数据插入顺序进行存储
        //Array : 数组,阵列 -- ArrayList的底层是一个数组

        //1. 不需要传递构造参数 -- 底层是空数组
        ArrayList list = new ArrayList();
        //2. 需要传递一个int类型的值,用于设定底层数组的长度
        //3. 需要传递一个Collection集合类型的值,用于将其他集合的数据放置于当前集合中

        //TODO 增加数据
        //add方法 可以增加数据,将数据作为参数传递到add方法即可
        //添加第一条数据时,如果集合中没有任何数据,则底层会固定创建长度为 10 的数组
        //集合的数组中存放的不是对象本身,而是对象的索引
        list.add("zz");
        list.add(1);
        list.add("zz");
        list.add("zz");
        list.add("zz");
        list.add(1,"haha"); //指定位置的add = 顺序表的插入,之后的元素会逐个后移

        //TODO add的底层原理
        //     当ArrayList中的数组存满后,会创建容量更大的新数组 -- !而不是将旧数据扩容
        //     将旧数组中已经有的索引复制到新数组中,再释放旧数组空间

        //.size() 获取集合中数据的条数
        System.out.println(list.size());
        //.get() 采用索引方式获取指定位置的数据 -- 底层是数组 => 数据的索引 0 ~ length-1
        System.out.println(list.get(0));
        // 遍历集合中的数据
        for (int i = 0; i < list.size(); i++) {
            System.out.println("for集合中的数据:" + list.get(i));
        }
        //for-each循环
        for(Object obj : list){
            System.out.println("for-each : " + obj);
        }

        //TODO 修改数据
        //.set() 修改指定位置的数据
        //第一个参数表示数据位置,第二个参数表示修改的值,并返回更新前的值
        Object oldValue = list.set(0,"hehe");
        System.out.println("修改前的值:"+oldValue);

        //TODO 删除数据
        //.remove() 传入删除数据的位置,返回删除数据的值
        System.out.println("删除的值" + list.remove(0));

        //TODO addAll
        //将另一个集合的所有元素按序添加到集合中,且保留插入的集合 => 集合中有子集合
        ArrayList otherList = new ArrayList();
        otherList.add("a");
        otherList.add("b");
        otherList.add("c");
        list.addAll(otherList);

        //TODO isEmpty() 判断是否为空
        System.out.println(list.size());
        System.out.println(list.isEmpty());
        //.clear()  删除集合中所有数据,集合的数组容量不变
        //list.clear();
        //.removeAll() 删除集合中子集合的全部数据
        System.out.println(list);  // [haha, 1, zz, a, b, c]
        list.removeAll(otherList); // otherList : [a, b, c]
        System.out.println(list);  // [haha, 1, zz]

        //TODO .contains() 判断集合中是否存在某条数据
        System.out.println(list.contains("haha")); //true

        //TODO .indexOf() 检索数据在集合中的位置,存在返回第一个数据的位置,不存在返回 -1
        System.out.println(list.indexOf("zz")); //2
        //TODO .lastIndexOf() 检索数据在集合中的位置,存在返回最后一个数据的位置,不存在返回 -1
        System.out.println(list.lastIndexOf("zz")); //4
        //中间的数据无法获取

        //TODO .toArray() 集合转数组
        Object[] objects = list.toArray();

        //TODO .clone() 克隆\复制 一个和原集合内容相同的新对象
        ArrayList list1 = (ArrayList) list.clone();
        System.out.println(list1);

    }

}

标签:ArrayList,list,System,println,add,集合,out
From: https://www.cnblogs.com/Ashen-/p/17022140.html

相关文章

  • L2-005 集合相似度
    L2-005 集合相似度 (25 分)给定两个整数集合,它们的相似度定义为:Nc/Nt×100%。其中Nc是两个集合都有的不相等整数的个数,Nt是两个集合一共有的不相等整数的个数。你的任务就......
  • 数据结构 玩转数据结构 7-9 Leetcode上更多集合和映射的问题
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13711 1重点关注1.1结论3.1和3.2对比3.2空间复杂度优于3.1 3.3和3.4对比......
  • 当下适合男人用的智能手机集合-转
    哪些智能手机适合男人使用呢?哪些安卓手机具有男人气息呢?从低价位的1000到中高价位的4000均有推荐,有兴趣的朋友不妨考虑一下。 HTC7Trophy,也叫奖杯,WP7系统,1000......
  • 第十三章《集合》第5节:Map集合
    ​List、Set和Queue都是Collection接口的子接口,因此从更高层次来说它们属于统一类型的集合。Map接口也代表一种集合,但它不是Collection子接口,因此它属于另一种类型的集合。M......
  • 第十三章《集合》第6节:使用Collections类操作集合
    ​Java提供了一个操作集合的工具类Collections,这个类中提供了大量方法对集合元素进行排序、查询和修改等操作,此外还提供了将集合对象设置为不可变、对集合对象实现同步控制......
  • 第十三章《集合》第4节:Queue集合
    ​Queue是一个接口,它也是Collection接口的子接口。Queue用来模拟队列这种数据结构。队列这种数据结构最明显的特征是元素先入先出,队列的头部的元素是所有元素中最先进入队列......
  • 第十三章《集合》第2节:List集合
    ​List这个单词意为“列表”,List类型的集合的特点是:元素呈线性排列,致密且有序。下面的图13-3展示了List类型集合的特点。图13-3List类型集合​图13-3中的每一个小圆形代表......
  • 第十三章《集合》第3节:Set集合
    ​Set也是Collection的子接口,它定义了另一种形式的集合,专业上称之为Set集合。Set集合的特点如图13-9所示。图13-9Set类型集合​从图13-9可以看出:Set类型的集合就像是一个装......
  • Java Map 集合类简介
    java.util中的集合类包含Java中某些最常用的类。最常用的集合类是List和Map。List的具体实现包括ArrayList和Vector,它们是可变大小的列表,比较适合构建、存储和......
  • 第十三章《集合》第1节:Java集合概述
    ​实际开发过程中,常常需要集中存放多个数据,虽然程序员可以使用数组来保存多个对象,但数组长度不可变化,一旦在初始化数组时指定了数组长度,这个数组长度就是不可变的,如果需要保......