Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java中的一些严重重复问题_Java - Fatal编程技术网

Java中的一些严重重复问题

Java中的一些严重重复问题,java,Java,我不知道这对我来说是不是一个心理障碍,但是尽管花了几个小时研究已经提出的问题,我还是不能得出最后的结论。试图理解这么多不同的答案,我感到迷茫和困惑( 请告诉我做以下事情的最佳方法。我花了相当长的时间研究了存在的问题,但没有得到底线 我试图将arraylist转换为数组,在转换过程中,出现了另一个关于对象和数组类型转换的问题 ArrayList<Integer> al = new ArrayList<Integer>(); al.add(1); al

我不知道这对我来说是不是一个心理障碍,但是尽管花了几个小时研究已经提出的问题,我还是不能得出最后的结论。试图理解这么多不同的答案,我感到迷茫和困惑(

请告诉我做以下事情的最佳方法。我花了相当长的时间研究了存在的问题,但没有得到底线

我试图将arraylist转换为数组,在转换过程中,出现了另一个关于对象和数组类型转换的问题

    ArrayList<Integer> al = new ArrayList<Integer>();
    al.add(1);
    al.add(2);
    al.add(3);
    Object[] oa = al.toArray();
    int [] a = new int[al.size()];
    a = (int[]) oa;
ArrayList al=new ArrayList();
al.添加(1);
al.添加(2);
al.添加(3);
对象[]oa=al.toArray();
int[]a=新的int[al.size()];
a=(int[])oa;
在最后一行,它说我不能从object[]强制转换为int[]


那么,由于toArray方法只返回一个对象数组,我该如何进行类型转换呢。

数组
oa
是一个整数对象数组。您正试图将其转换为
int
s数组


您必须记住将引用类型(
Integer
)自动装箱/取消装箱到基元类型(
int
)当您将数组强制转换为其他类型时不会发生。

您没有强制转换它;您从
oa
获取
整数,将每个值作为
int
,您可以将其放入
a

中,您读过了吗?这是否意味着我必须循环所有元素,并使用intValue()将每个整数转换为int方法?我的问题是,为什么你需要一个
int[]
那么糟糕?你已经拥有的
Integer[]
有什么问题吗?但简单的答案是肯定的,两者之间没有自动转换…你注定会陷入循环。这也不起作用。当我这样做时,它会给我一个类强制转换异常:
Integer[]a=(Integer[])al.toArray();
@boyyett我想你可能误解了……但是如果你能接受一个
Integer[]
你就可以得到一个:
Integer[]integerArray=al.toArray(新的整数[]{})