Arrays.asList(new int[]{1,2,3})和Arrays.asList(new Integer[]{1,2,3})

Arrays.asList(new int[]{1,2,3})和Arrays.asList(new Integer[]{1,2,3})

Arrays.asList(new int[]{1,2,3});
Arrays.asList(new Integer[]{1,2,3});

这两行代码的返回值是不一样的。

看源码的话,该方法是是这样的

public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
}

既然是一个可变长度,那么传入int[]和Integer[]进去,肯定是将数组平铺。

那么int[]和Integer[]的中的元素类型是怎么样?一个是int,一个是Integer?

但是好像没有int这个类吧?虽然有着int.class的代码写法倒是了。

结果是这样的

     int[] a = new int[] {1,2,3,4,5,6,7,8};
        Integer[] b = new Integer[] {1,2,3,4,5,6,7,8};
        List<int[]> ints1 = Arrays.asList(a);
        List<Integer> list = Arrays.asList(b);

需要注意asList返回的不是java.util包下的ArrayList,而是Arrays类中的静态内部类。所以没有重写remove之类的方法,调用其父类的方法。

public E remove(int index) {
        throw new UnsupportedOperationException();
    }

抛出不支持运算异常

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇