数组的Arrays.asList()

数组的Arrays.asList(),第1张

数组的Arrays.asList()

让我们考虑以下简化示例:

public class Example {    public static void main(String[] args) {        int[] factors = {1, 2, 3};        ArrayList<Integer> f = new ArrayList(Arrays.asList(factors));        System.out.println(f);    }}

在println行中,这会打印类似“ [[I @ 190d11]””的字样,这意味着您实际上已经构建了一个包含int 数组 的ArrayList 。

您的IDE和编译器应警告该代码中未经检查的分配。您应该始终使用

new ArrayList<Integer>()
newArrayList<>()
代替
new ArrayList()
。如果您使用过它,则会由于尝试传递
List<int[]>
给构造函数而出现编译错误。

int[]
至没有自动装箱
Integer[]
,总之,自动装箱只是编译器中的语法糖,因此在这种情况下,您需要手动进行数组复制:

public static int getTheNumber(int[] factors) {    List<Integer> f = new ArrayList<Integer>();    for (int factor : factors) {        f.add(factor); // after autoboxing the same as: f.add(Integer.valueOf(factor));    }    Collections.sort(f);    return f.get(0) * f.get(f.size() - 1);}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5428092.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-11
下一篇 2022-12-11

发表评论

登录后才能评论

评论列表(0条)

保存