我如何在Java中转换ArrayList<String>对象为String[]数组?
当前回答
如果需要对数据进行一些额外的操作,用户想要一个函数,这种方法并不完美(因为它需要将元素的类作为第二个参数传递),但有效:
进口java.util.ArrayList; 进口java.lang.reflect.Array;
public class Test {
public static void main(String[] args) {
ArrayList<Integer> al = new ArrayList<>();
al.add(1);
al.add(2);
Integer[] arr = convert(al, Integer.class);
for (int i=0; i<arr.length; i++)
System.out.println(arr[i]);
}
public static <T> T[] convert(ArrayList<T> al, Class clazz) {
return (T[]) al.toArray((T[])Array.newInstance(clazz, al.size()));
}
}
其他回答
在Java 8中,可以使用
String[] arrayFromList = fromlist.stream().toArray(String[]::new);
ArrayList<String> arrayList = new ArrayList<String>();
Object[] objectList = arrayList.toArray();
String[] stringArray = Arrays.copyOf(objectList,objectList.length,String[].class);
使用copyOf, ArrayList to array也可以实现。
Java 8中的替代方案:
String[] strings = list.stream().toArray(String[]::new);
Java 11 +:
String[] strings = list.toArray(String[]::new);
在Java 11中,我们可以使用Collection.toArray(生成器)方法。下面的代码将创建一个新的字符串数组:
List<String> list = List.of("one", "two", "three");
String[] array = list.toArray(String[]::new)
从java。基地的java.util.Collection.toArray()。
你可以为List使用toArray()方法:
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
String[] array = list.toArray(new String[list.size()]);
或者你可以手动将元素添加到数组中:
ArrayList<String> list = new ArrayList<String>();
list.add("apple");
list.add("banana");
String[] array = new String[list.size()];
for (int i = 0; i < list.size(); i++) {
array[i] = list.get(i);
}
希望这能有所帮助!
推荐文章
- 为什么数组的地址等于它在C语言中的值?
- 将所有非字母数字字符替换为空字符串
- 漂亮地打印Java集合(toString不返回漂亮输出)
- 静态嵌套类在Java,为什么?
- 如何防止Eclipse在启动时挂起?
- 我如何使用可选的链接与数组和函数?
- Optional和Optional的区别是什么?flatMap和Optional.map?
- 使用Pandas为字符串列中的每个值添加字符串前缀
- 我如何能匹配一个字符串与正则表达式在Bash?
- Java中枚举的命名:单数还是复数?
- Angular ng-repeat反过来
- 将行添加到数组
- JavaBean和POJO之间的区别是什么?
- 注释在Java中如何使用,在哪里使用?
- 如何在Ubuntu下安装JDK 11 ?