Java泛型数组ArrayList使用简明教程
2023-12-25 08:32:44
Java泛型数组ArrayList(类似C++的vector)
在Java中,ArrayList
是java.util
包中提供的一个常用的动态数组实现,它实现了List
接口。下面是ArrayList
的一些常见用法和示例:
创建 ArrayList
import java.util.ArrayList;
import java.util.List;
public class ArrayListExample {
public static void main(String[] args) {
// 创建一个空的 ArrayList
List<String> arrayList = new ArrayList<>();
// 创建带有初始容量的 ArrayList
List<Integer> intList = new ArrayList<>(10);
}
}
添加元素
List<String> fruits = new ArrayList<>();
// 添加单个元素
fruits.add("Apple");
fruits.add("Banana");
// 添加一组元素
List<String> moreFruits = Arrays.asList("Orange", "Grapes", "Mango");
fruits.addAll(moreFruits);
获取元素
String firstFruit = fruits.get(0);
System.out.println("First fruit: " + firstFruit);
遍历 ArrayList
for (String fruit : fruits) {
System.out.println(fruit);
}
// 使用迭代器遍历
Iterator<String> iterator = fruits.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
删除元素
fruits.remove("Banana");
判断元素是否存在
boolean containsApple = fruits.contains("Apple");
System.out.println("Contains Apple? " + containsApple);
获取 ArrayList 大小
int size = fruits.size();
System.out.println("Size of ArrayList: " + size);
转换为数组
String[] fruitArray = new String[fruits.size()];
fruits.toArray(fruitArray);
清空 ArrayList
fruits.clear();
检查 ArrayList 是否为空
boolean isEmpty = fruits.isEmpty();
System.out.println("Is ArrayList empty? " + isEmpty);
替换元素
fruits.set(0, "NewApple");
截取部分元素
List<String> subList = fruits.subList(1, 3);
访问元素通过索引
List<Integer> numbers = new ArrayList<>();
numbers.add(10);
numbers.add(20);
numbers.add(30);
// 访问第一个元素
int firstNumber = numbers.get(0);
System.out.println("First number: " + firstNumber);
// 访问最后一个元素
int lastNumber = numbers.get(numbers.size() - 1);
System.out.println("Last number: " + lastNumber);
设置元素通过索引
// 设置第一个元素
numbers.set(0, 100);
// 设置最后一个元素
numbers.set(numbers.size() - 1, 300);
遍历并修改元素
List<Integer> scores = new ArrayList<>(Arrays.asList(90, 85, 88, 92));
for (int i = 0; i < scores.size(); i++) {
int currentScore = scores.get(i);
// 在遍历过程中修改元素
scores.set(i, currentScore + 5);
}
在特定位置插入元素
// 在第二个位置插入元素
numbers.add(1, 50);
删除特定位置的元素
// 删除第三个位置的元素
numbers.remove(2);
判断索引是否有效
int indexToCheck = 5;
if (indexToCheck >= 0 && indexToCheck < numbers.size()) {
int valueAtIndex = numbers.get(indexToCheck);
System.out.println("Value at index " + indexToCheck + ": " + valueAtIndex);
} else {
System.out.println("Invalid index");
}
使用迭代器更新元素
Iterator<Integer> iterator = numbers.iterator();
while (iterator.hasNext()) {
int currentValue = iterator.next();
// 在迭代器中更新元素
iterator.set(currentValue * 2);
}
设置或预估其容量
// 创建一个ArrayList
ArrayList<String> arrayList = new ArrayList<>();
// 预估容量为20
arrayList.ensureCapacity(20);
在这个例子中,ensureCapacity(20)
方法告诉ArrayList预估容量为20,然后我们可以添加元素到ArrayList。这可以提高性能,因为它避免了在每次添加元素时都进行数组的重新分配。不过,预估容量的方法并不会实际地更改列表的大小,它只是预先分配内存以便后续的添加操作,以减少动态扩展的开销。
这些是ArrayList
的一些基本用法。需要注意的是,ArrayList
是基于动态数组实现的,它会自动调整大小。
文章来源:https://blog.csdn.net/m0_74220316/article/details/135143908
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!