您当前的位置: 首页 > 

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

【精品】List和数组之间的转换

梁云亮 发布时间:2021-05-21 10:55:48 ,浏览量:2

注意:本博客中的转换,List都得是泛型后的,否则会报错。

List转数组
    public static void main(String[] args) {
        //System.out.println(firstUpper("zhangsan"));
        List list = List.of("aa","bb","cc","dd");

        String[] array1 = list.toArray(new String[0]);
        System.out.println(array1[3]);

        String[] array2 = list.toArray(new String[list.size()]);//推荐
        System.out.println(array2[3]);

        String[] array4 = list.stream().toArray(size -> new String[size]);
        System.out.println(array4[1]);

        String[] array3 = list.stream().toArray(String[]::new); //重点:推荐
        System.out.println(array3[2]);

        Object[] objs = list.stream().toArray();
        String[] array5 = Arrays.copyOf(objs, objs.length, String[].class);
        System.out.println(array5[0]);

        List list2 = List.of(11, 22, 33, 44);
        int[] array6 = list2.stream().mapToInt(Integer::intValue).toArray();
        System.out.println(array6[3]);

        int[] array7 = IntStream.of(22, 33, 44).toArray();
        System.out.println(array7[1]);
    }
数组转List
    public static void main(String[] args) {
        //System.out.println(firstUpper("zhangsan"));
        //数组转list
        String[] array = {"aa", "bb", "cc", "dd"};
        List list1 = Arrays.asList(array);
        System.out.println(list1.get(3));
        //list1.add("ee");  //--------------- ①
        //System.out.println(list1);

        ArrayList list2 = new ArrayList(Arrays.asList(array)); //推荐
        System.out.println(list2.get(2));

        ArrayList list3 = new ArrayList(array.length);
        Collections.addAll(list3, array);
        System.out.println(list3.get(2));

        List list4 = Stream.of(array).collect(Collectors.toList()); //重点:推荐
        System.out.println(list4.get(3));

        List list5 = Arrays.stream(array).collect(Collectors.toList());
        System.out.println(list5.get(1));
    }

说明: Arrays.asList()返回的列表的大小是固定的。

Arrays.asList(strArray)的返回值不是java.util.ArrayList类,而是java.util.Arrays类中一个私有静态内部类java.util.Arrays.ArrayList,它并非java.util.ArrayList类。 ArrayList的实现本质上是一个数组,而asList()返回的列表是由原始数组支持的固定大小的列表。这种情况下,如果添加或删除列表中的元素,程序会抛出异常UnsupportedOperationException。 java.util.Arrays.ArrayList类具有 set(),get(),contains()等方法,但是没有添加add()或删除remove()方法,所以调用add()方法会报错。

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0394s