当前位置: 首页 > 知识库问答 >
问题:

将List转换为新对象[]{}

陆洛城
2023-03-14

我有这个:

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() });

我想把这个列表UserColums(String类型的列表)直接投射到新的Object[]java.lang.object类型)上,但不知道如何?

共有3个答案

张逸清
2023-03-14

您可以执行toArray()方法:

ArrayList<String> arr = new ArrayList<>();
arr.toArray()

其中:

返回一个数组,该数组包含列表中按正确顺序排列的所有元素(从第一个元素到最后一个元素)。

叶衡虑
2023-03-14

看来你想要的更像是

data.put(1, listUserColumns.stream().map(c -> c.getName()).toArray());

对于子集

data.put(1, listUserColumns.subList(from, to)
                           .stream().map(c -> c.getName()).toArray());
贝研
2023-03-14

这取决于你打算获得什么,这一点从问题中并不清楚。

当您需要获取列表中所有元素的名称数组时,可以使用< code>Stream

Object[] names = listUserColumns.stream().map(c -> c.getName()).toArray();

但是,无法强制转换此listUserColums,因为数组是ArrayList的内部表示形式。您可以使用它创建一个新数组,其中包含对与列表相同的元素的引用

Object[] elements = listUserColumns.toArray();

在您的情况下,< code>listUserColumns似乎不是< code >列表

 类似资料:
  • 我有V类的对象列表,我想创建一个相同V类的新对象。List中对象的一些属性在列表中是相同的,一些属性具有不同的值。我想创建新的对象V,它们具有公共属性,并且具有不同值的属性应该被求和并设置为对象V。 例如 我有如下列表。 我想要新的Sample对象,其值为 我怎样才能做到这一点?

  • 我在MongoDB中使用Java驱动程序3.0,以便通过Web服务发送JSON。 当我想将文档对象(org.bson.文档)转换为JSON时,我使用,当我想将JSON转换为文档对象时,我使用。 但是,当我处理文档列表时(如JSON中所示:

  • 问题内容: 我有一个列表,我需要使用GSON将其转换为JSON对象。我的JSON对象中包含JSON数组。 以下是我的代码,其中我需要将列表转换为其中具有JSON数组的JSON对象- 到目前为止,列表中只有两项-所以我需要这样的JSON对象- 做这个的最好方式是什么? 问题答案: 如果在您的方法中为,则应进行序列化。 这将为您提供所需的JSON输出。

  • 此API调用返回一个可能较大的列表 排序、搜索和访问一个潜在的大型LinkedList将非常缓慢,对我的程序来说是不可接受的。因此,我需要将列表转换为ArrayList,以确保程序的实际效率。但是,由于列表很可能已经是ArrayList,因此不必要地创建列表的新ArrayList副本将效率低下。 考虑到这些约束,我提出了以下方法将列表转换为ArrayList: 我的问题是:这是处理具有未知实现的列

  • 如何将一个var转换为两个var列表? 下面是我的输入变量: 我希望我的结果应该是:

  • 我正在学习Spring WebFlux。 我的实体是这样的: 我有一个储存库(R2使用H2数据库)如下: 我的控制器是: 目前为止一切正常。我能够每3秒钟向视图返回整个用户列表。这里没有任何问题。 现在,我想将Flue,即Flux Flux2=userRepository.findAll()发送到视图。这意味着,不是如何才能? 问题:我如何才能做到这一点?即我如何才能每3秒将整个Flux发送到我的