Java中一些严重的重复问题[重复]

Posted

技术标签:

【中文标题】Java中一些严重的重复问题[重复]【英文标题】:Some serious duplicate questions in Java [duplicate] 【发布时间】:2015-05-03 08:06:30 【问题描述】:

我不知道这对我来说是不是心理障碍还是什么,但尽管我花了几个小时研究已经提出的问题,但我还是无法得出最终结论。试图理解这么多不同的答案时,我迷失了方向。 :(

请告诉我执行以下操作的最佳方法。我花了相当多的时间来研究现有的问题,但无法得到底线。

我正在尝试将一个数组列表转换为一个数组,在此过程中,弹出了另一个关于对象和数组类型转换的问题。

    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;

在最后一行,它说我不能从 object[] 转换为 int[]。

那么,我该如何进行类型转换,因为 toArray 方法只返回一个 Object 数组。

【问题讨论】:

你读过How to convert List<Integer> to int in Java?吗? 【参考方案1】:

数组oa 是一个整数对象数组。而您正试图将其转换为 ints 的数组。

您必须记住,当您将数组转换为其他类型时,不会自动将引用类型 (Integer) 装箱/拆箱到原始类型 (int)。

【讨论】:

那么,这是否意味着我必须遍历所有元素并使用 intValue() 方法将每个 Integer 转换为 int? 我的问题是,你为什么需要这么糟糕的int[]?您已经拥有的Integer[] 有什么问题?但简单的答案是肯定的,两者之间没有自动转换......你注定要陷入循环。 那也行不通。当我这样做时,它给了我一个类转换异常:Integer [] a = (Integer []) al.toArray(); @boyyett 我想你可能误解了......但如果你能接受Integer[],这就是你得到一个的方式:Integer[] integerArray = al.toArray(new Integer[])【参考方案2】:

你不施放它;您从oa 获得Integers,将每个值作为int,您可以输入a

【讨论】:

以上是关于Java中一些严重的重复问题[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Java & hashCode作用

MQ问题及解决方案

防止表单重复提交

防止表单重复提交

用于更改语言的java属性文件中的空格问题[重复]

Java:如何修复多种方法中的代码重复?