一、Java ArrayList的基本介绍
Java中的ArrayList是一种动态数组,它可以自动扩容以适应数据的增加。ArrayList中可以存储任何类型的数据,但不能直接存储基本数据类型,需要使用其对应的包装类实现。
二、Java ArrayList转换为数组的方式
Java ArrayList可以通过三种方法将其转换为数组:使用toArray()方法、利用Java 8的Stream API,以及调用Java中的copyOf()方法。
1) 使用toArray()方法
ArrayList提供了一个toArray()方法,该方法可以将ArrayList转换为数组。
List<Integer> list = new ArrayList<>(); list.add(1); list.add(2); list.add(3); Integer[] arr = list.toArray(new Integer[0]);
代码解释:
1) 首先我们创建了一个ArrayList并向其中添加了三个Integer类型的元素。
2) 调用ArrayList中的toArray()方法,并将其传入一个新的Integer类型数组,此时新的数组长度为0,这样做的目的是告诉Java将返回一个大小相同的新数组。
3) toArray()方法返回的类型是Object[],但是我们可以将其进行强制转换为我们需要的类型。
2) 利用Java 8的Stream API
Java 8中新增了Stream API。我们可以使用Stream API将ArrayList转换为数组。
List<String> list = new ArrayList<>(); list.add("apple"); list.add("banana"); list.add("orange"); String[] arr = list.stream().toArray(String[]::new);
代码解释:
1) 我们创建了一个ArrayList并向其中添加了三个String类型的元素。
2) 调用ArrayList中的stream()方法,获取Stream对象。
3) 调用Stream对象中的toArray()方法,并将其传入一个方法引用String[]::new,表示创建一个String类型的数组。
3) 调用Java中的copyOf()方法
在Java中,Arrays类提供了数组的许多实用程序方法,其中包括一个用于复制数组的方法copyOf()。
List<Double> list = new ArrayList<>(); list.add(1.2); list.add(3.4); list.add(5.6); Double[] arr = Arrays.copyOf(list.toArray(), list.size(), Double[].class);
代码解释:
1) 我们创建了一个ArrayList并向其中添加了三个Double类型的元素。
2) 调用ArrayList中的toArray()方法,将其返回结果作为copyOf()方法的第一个参数。
3) 将ArrayList的大小作为copyOf()方法的第二个参数。
4) 将数组的目标类型(此处为Double[])作为copyOf()方法的第三个参数。
三、总结
Java ArrayList是一种非常实用的数据结构,并且可以很方便地与数组进行转换。我们可以使用toArray()方法、Java 8的Stream API或者Arrays类中的copyOf()方法将ArrayList转换为数组,并在实际开发中根据具体情况选择合适的转换方式。