ArrayList 集合中怎么插入元素的

写一个测试方法,创建一个集合,看看到底是怎么执行插入操作的。

    public static void test1(){
        
        //创建一个集合
        List<Integer> list =  new ArrayList<Integer>();
        list.add(1);
        list.add(7);
        list.add(5);
        list.add(8);
        System.out.println(list);
    }

控制台输出:[1, 7, 5, 8]

ArrayList 提供了一个add()方法,当我们创建了一个集合对象,直接调用add()方法就可以插入指定类型的元素,但是add()方法到底是怎么向集合中插入元素的呢?下面我们来分析一下。
在这里插入图片描述
当执行插入操作的时候,首先 ensureCapacityInternal(size + 1) ,elementData[size] = e; size++;,这里的size是ArrayList中定义的表示集合大小的成员变量。
在这里插入图片描述
下边我们看add 调用的ensureCapacityInternal方法
在这里插入图片描述
elementData,EMPTY_ELEMENTDATA,DEFAULT_CAPACITY都是什么意思
在这里插入图片描述
也就是说当我们创建一个ArrayList集合的时候,默认会给我们分配一个容量为10的数组,至于怎么扩容,我们再看 grow方法
在这里插入图片描述
注意:这里传过来的minCapcatiy的值是size+1,能够实现grow方法调用就肯定是(size+1)>elementData.length的情况,所以size就是初始最大容量或上一次扩容后达到的最大容量,所以才会进行扩容。
newCapacity=oldCapacity+(oldCapacity>>1),这里就是扩容大小确定的地方,相当于新的最大容量是 size+1+size/2 相当于原来的1.5倍然后加1。

我们看到调用了Arrays工具类的 copyOf方法。

在这里插入图片描述

最后我们看一下System.arraycopy()方法 ,会发现和remove()删除集合中的元素用的同一个方法,传送门arraycopy方法

ArrayList 底层是数组的形式,所以支持重复元素,如果没有指定大小,默认容量为10,当超过的默认容量的时候,会进行扩容,按照原来容量的1.5倍加1进行。当存入的集合数量一致增加时,会一直进行扩容操作,所以如果预先知道需要的集合的大小,可以直接创建一个指定大小的ArrayList集合,可以避免重复数组copy的扩容操作。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用Java语言编写一个程序,实现向ArrayList集合添加元素,并遍历输出这些元素的功能。 具体实现步骤如下: 1. 首先需要导入java.util包ArrayList类,以便使用ArrayList集合。 2. 创建一个ArrayList对象,用于存储元素。 3. 使用add()方法向ArrayList集合添加元素。 4. 使用for循环遍历ArrayList集合元素,并使用System.out.println()方法输出每个元素。 下面是示例代码: import java.util.ArrayList; public class ArrayListDemo { public static void main(String[] args) { // 创建一个ArrayList对象 ArrayList<String> list = new ArrayList<>(); // 向ArrayList集合添加元素 list.add("Java"); list.add("Python"); list.add("C++"); list.add("JavaScript"); // 遍历ArrayList集合元素,并输出 for (String str : list) { System.out.println(str); } } } 运行程序,输出结果如下: Java Python C++ JavaScript 以上就是编写一个程序,向ArrayList集合添加元素,然后遍历输出这些元素的方法。 ### 回答2: 要编写一个程序,向arraylist集合添加元素,然后遍历输出这些元素,需要使用Java编程语言和一个Java开发环境,如Eclipse或NetBeans等。首先,我们需要创建一个ArrayList对象,并使用add()方法向其添加元素。例如,我们可以创建一个存储字符串的ArrayList对象,并向其添加一些字符串元素ArrayList<String> myList = new ArrayList<String>(); myList.add("hello"); myList.add("world"); myList.add("java"); 接下来,我们可以使用循环遍历ArrayList对象,并使用get()方法获取每个元素,并将其输出到控制台。例如,我们可以使用for循环输出ArrayList对象的每个元素: for (int i = 0; i < myList.size(); i++) { System.out.println(myList.get(i)); } 这将输出以下结果: hello world java 因此,编写一个程序,向arraylist集合添加元素,然后遍历输出这些元素的过程可以简单地用上述代码实现。这个简单的程序可以帮助了解如何创建和操作Java的ArrayList集合,并向其添加和遍历元素。这也是推荐初学者学习Java编程的基本操作。 ### 回答3: ArrayList是Java的一个集合类,可以动态地添加、删除元素,因此它在实际编程非常常用。编写程序向ArrayList集合添加元素,然后遍历输出这些元素也是一个非常基本的操作,下面就来介绍一下具体的步骤。 第一步:创建ArrayList对象 在Java程序,我们需要使用new关键字来创建ArrayList对象。下面的代码展示了如何创建一个ArrayList对象: ArrayList<String> arrayList = new ArrayList<String>(); 这里我们创建的ArrayList对象是一个泛型类,泛型参数指定为String类型,表示这个集合只能包含String类型的元素。如果你不确定集合包含的元素类型,也可以使用泛型通配符(?)来代替泛型参数: ArrayList<?> arrayList = new ArrayList<?>(); // 任何类型的元素都可以放入这个集合 第二步:向ArrayList集合添加元素 在创建了ArrayList对象之后,我们就可以向其添加元素了。使用add()方法来添加元素,下面的代码演示了如何向ArrayList集合添加元素arrayList.add("Java"); arrayList.add("Python"); arrayList.add("C++"); 在上面的代码,我们首先创建了一个ArrayList对象,然后使用add()方法向其添加了三个字符串元素。 第三步:遍历输出ArrayList集合元素 ArrayList集合是一种线性表结构,其元素是有顺序的。所以我们可以使用for循环或者foreach循环来遍历输出其元素。下面的代码演示了如何使用foreach循环来遍历输出ArrayList集合元素: for (String element : arrayList) { System.out.println(element); } 运行上面的代码,你会看到下面的输出结果: Java Python C++ 我们还可以使用普通的for循环来遍历输出ArrayList集合元素,下面的代码演示了具体的实现过程: for (int i = 0; i < arrayList.size(); i++) { System.out.println(arrayList.get(i)); } 上面的代码,我们使用了size()方法来获取ArrayList集合元素的个数,通过get()方法来获取指定位置上的元素。 到这里,我们完成了ArrayList集合添加元素和遍历输出的操作。ArrayList集合是Java非常常用的一种数据结构,它的灵活性和易用性使得它被广泛使用在各种应用场景。掌握ArrayList集合的基础操作,有助于我们更好地编写Java程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值