我有这个:
data.put(1,
new Object[] { listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName(),
listUserColumns.get(field++).getName(), listUserColumns.get(field++).getName() });
我想将此listUserColums
(类型为String的列表)直接转换为新的Object[]
(类型为java.lang.object
的类型),但不知道如何?
答案 0 :(得分:1)
这取决于您打算获得的内容,问题尚不清楚。
当需要获取列表中所有元素的名称数组时,可以使用Stream<T>
Object[] names = listUserColumns.stream().map(c -> c.getName()).toArray();
但是,由于数组是ArrayList
的内部表示形式,因此无法广播此listUserColums 。您可以使用此
Object[] elements = listUserColumns.toArray();
在您的情况下,看起来listUserColumns
不是List<String>
,这就是为什么这些方法的结果会不同的原因(在第一种情况下是字符串数组,在第二种情况下是自定义数组类型)。
答案 1 :(得分:1)
您想要的东西似乎更像
data.put(1, listUserColumns.stream().map(c -> c.getName()).toArray());
对于子集
data.put(1, listUserColumns.subList(from, to)
.stream().map(c -> c.getName()).toArray());
答案 2 :(得分:0)
您可以执行toArray()
方法:
ArrayList<String> arr = new ArrayList<>();
arr.toArray()
哪个:
以正确的顺序返回一个包含此列表中所有元素的数组(从第一个元素到最后一个元素)。