一、使用List.toArray()方法
List是Java中常用的容器类型之一,通过toArray()方法可以将List转换为数组。
List<String> list = new ArrayList<>(); list.add("Java"); list.add("Python"); list.add("C++"); String[] arr = list.toArray(new String[list.size()]);
在上面的示例中,我们首先创建了一个List,并向其中添加了三个元素。然后,我们调用toArray()方法将List转换为数组。需要注意的是,在toArray()方法中,我们需要传入一个同样类型的数组作为参数,这个数组的长度可以小于或等于List的长度。如果小于List的长度,那么List中多余的元素将被丢弃;如果等于List的长度,那么正常转换。
二、使用Arrays.asList()方法
在Java中,我们可以使用Arrays.asList()方法将数组转换为List,也可以使用Collections.addAll()方法将数组中的元素添加到List中,然后再将List转换为数组。
String[] arr = {"Java", "Python", "C++"}; List<String> list = new ArrayList<>(Arrays.asList(arr)); String[] arr2 = new String[arr.length]; Collections.addAll(list, arr2); arr2 = list.toArray(arr2);
在上面的示例中,我们首先定义了一个包含三个元素的数组。然后,我们使用Arrays.asList()方法将数组转换为List,并将其赋值给list变量。接着,我们再创建一个长度等于数组长度的空数组,并利用Collections.addAll()方法将List中的元素添加到数组中。最后,我们在将List转换为数组。需要注意的是,这里我们需要传入一个同样类型的空数组,用于存放转换后的结果。
三、使用StreamAPI
在JDK8以后,Java提供了StreamAPI,可以很方便地对集合进行操作,并进行数组的转换。
String[] arr = {"Java", "Python", "C++"}; String[] result = Arrays.stream(arr) .filter(s -> s.startsWith("J")) .toArray(String[]::new);
在上面的示例中,我们首先定义了一个包含三个元素的数组。然后,我们使用Arrays.stream()方法将其转换为Stream,并使用filter()方法过滤出以J开头的元素。最后,我们使用toArray()方法将Stream转换为数组。需要注意的是,我们需要传入一个构造器引用,用于创建新的数组。
四、使用Apache Commons Lang库
除了Java自带的方法之外,我们还可以使用第三方库Apache Commons Lang提供的ArrayUtils类来实现数组与集合之间的转换。
String[] arr = {"Java", "Python", "C++"}; List<String> list = Arrays.asList(arr); String[] arr2 = ArrayUtils.toArray(list);
在上面的示例中,我们首先定义了一个包含三个元素的数组。然后,我们使用Arrays.asList()方法将其转换为List,并将其赋值给list变量。接着,我们使用ArrayUtils.toArray()方法将List转换为数组。需要注意的是,这里我们需要传入一个同样类型的数组,用于存放转换后的结果。