一、JavaNewArrayList概述
JavaNewArrayList是Java语言提供的基于数组实现的动态数组,可以根据需要动态扩容,提供了与传统数组相同的操作方法。相较于传统数组,JavaNewArrayList可以更加方便的进行数据的添加,删除和遍历,是Java语言中常用的数据结构之一。
JavaNewArrayList是java.util包中的一个类,在使用前需要先进行导包:import java.util.ArrayList;
二、JavaNewArrayList的常用方法
1. 添加元素
使用add()方法可以在JavaNewArrayList中添加元素,可以添加Java的基本数据类型、对象类型和集合类型 :
ArrayList<String> list = new ArrayList<String>(); list.add("apple"); // 添加字符串 list.add("orange"); list.add(2, "banana"); // 在第二个位置添加字符串
输出结果:
["apple", "orange", "banana"]
可以看到,使用add()方法增加元素时,如果不指定插入的位置,默认是在末尾插入。
2. 删除元素
可以使用remove()方法删除JavaNewArrayList中的元素,可以根据索引或元素本身来进行删除:
ArrayList<String> list = new ArrayList<String>(); list.add("apple"); list.add("orange"); list.add("banana"); list.remove(1); // 删除位置为1的元素,即"orange" list.remove("banana"); // 删除值为"banana"的元素
输出结果:
["apple"]
可以看到,使用remove()方法可以根据索引或元素本身来进行删除。如果使用remove()方法删除一个元素后,后面的元素会自动向前移动,数组的长度也会相应缩小。
3. 获取元素
可以使用get()方法获取JavaNewArrayList中的元素,可以根据索引来获取元素:
ArrayList<String> list = new ArrayList<String>(); list.add("apple"); list.add("orange"); list.add("banana"); String str = list.get(1); // 获取位置为1的元素,即"orange" System.out.println(str);
输出结果:
orange
4. 修改元素
可以使用set()方法修改JavaNewArrayList中的元素,可以根据索引来修改元素的值:
ArrayList<String> list = new ArrayList<String>(); list.add("apple"); list.add("orange"); list.add("banana"); list.set(1, "watermelon"); // 将位置为1的元素修改为"watermelon"
输出结果:
["apple", "watermelon", "banana"]
5. 遍历元素
可以使用for循环或forEach循环来遍历JavaNewArrayList中的元素:
ArrayList<String> list = new ArrayList<String>(); list.add("apple"); list.add("orange"); list.add("banana"); // 使用for循环遍历JavaNewArrayList中的元素 for (int i = 0; i < list.size(); i++) { System.out.println(list.get(i)); } // 使用forEach循环遍历JavaNewArrayList中的元素 for (String str : list) { System.out.println(str); }
输出结果:
apple orange banana apple orange banana
三、JavaNewArrayList的其他用法
1. JavaNewArrayList的初始化
可以在声明JavaNewArrayList的时候对其进行初始化,常用的有以下两种方法:
// 初始化JavaNewArrayList并添加元素 ArrayList<String> list1 = new ArrayList<String>() {{ add("apple"); add("orange"); add("banana"); }}; // 使用Arrays.asList()方法初始化JavaNewArrayList List<String> list2 = Arrays.asList("apple", "orange", "banana"); ArrayList<String> list3 = new ArrayList<String>(list2);
以上两种方法都能够完成JavaNewArrayList的初始化,但是第二种方法会返回一个不可变的列表。如果要对JavaNewArrayList进行修改,需要将其转化为可变的JavaNewArrayList。
2. JavaNewArrayList的容量和扩容机制
JavaNewArrayList是基于数组实现的动态数组,需要提前设定其容量大小。当JavaNewArrayList的长度超过其容量大小时,JavaNewArrayList会对其进行扩容。JavaNewArrayList的扩容机制是:每次扩容增加原来容量的一半。
ArrayList<String> list = new ArrayList<String>(10); // 初始化容量为10的JavaNewArrayList list.add("apple"); list.add("orange"); list.add("banana"); System.out.println(list.size()); // 输出JavaNewArrayList的长度 list.add("watermelon"); System.out.println(list.size()); // 输出JavaNewArrayList的长度
输出结果:
3 4
可以看到,JavaNewArrayList在添加水果”watermelon”时,JavaNewArrayList的长度已经超过了其初始化容量的大小10,因此会进行自动扩容,每次增加原来容量的一半。
3. JavaNewArrayList的类型限制
JavaNewArrayList是一个强类型的集合,在声明JavaNewArrayList时需要指明其参数类型。如果试图将不兼容的元素添加到JavaNewArrayList中,会出现编译错误:
ArrayList<String> list = new ArrayList<String>(); list.add("apple"); list.add(100); // 编译错误,Integer类型不兼容String类型
可以看到,试图将整数100添加到字符串类型的JavaNewArrayList中时,就会出现编译错误。
四、总结
JavaNewArrayList是Java语言中非常常用的数据结构,其使用方法和传统数组类似,但是具有更方便的添加、删除和遍历等操作。JavaNewArrayList有很多小细节,需要熟悉才能够使用得更加熟练。在实际的开发中,JavaNewArrayList也有其局限性,例如类型限制等。因此,在使用时需要根据实际需求进行选择和权衡。
原创文章,作者:MATJ,如若转载,请注明出处:https://www.506064.com/n/132466.html