gpt4 book ai didi

java - 在 Java 中将列表转换为数组

转载 作者:行者123 更新时间:2023-12-03 23:14:19 27 4
gpt4 key购买 nike

我是一个Long类型的List,想把它转换成一个long类型的数组。

但是当向列表中添加元素时,它说无法找到方法“add(int)”

我的代码如下所示

package collections;

import java.util.ArrayList;
import java.util.List;
import java.util.Arrays;

public class ListToArray {

private static List<Long> list;

public static void main(String[] args){

list=new ArrayList<Long>();
list.add(121145788);
list.add(1245898);

long[] arr=new long[list.size()];

arr=list.toArray();

}
}

我得到的错误是

错误 (16,13):找不到方法 add(int)。错误(21,25):类型不兼容

谁能指出哪里出了问题。

最佳答案

正如评论中所建议的,您应该添加 L 以强制该值为 long:

list.add(121145788L);
list.add(1245898L);

解释:

您要添加的值是int,而listlong。添加 L 使编译器使用数字文字作为类型 Long 的值,这可以被添加到列表中。

没有它,数字将被视为Integers,并且不能将它们添加到Long 类型的列表中,因此

cannot find method add(int)

有一个方法add(long),这就是使用L时使用的方法。

要转换为数组,您需要使用老式的方法:

for (int i = 0; i < arr.length; i++) {
arr[i]=list.get(i);
}

这是因为longprimitive , 而 Long 是一个引用类型(即它是一个 Object)。从基元到对象的转换并不总是那么容易。在这种情况下,老式方法效果很好。

关于java - 在 Java 中将列表转换为数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50191366/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com