java int[]如何转换成ArrayList

2021/9/14 20:05:14

本文主要是介绍java int[]如何转换成ArrayList,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

气死,,头一次被这东西气成这样,数组和集合的转换,是不一样的!!!!!!很狗!

    public void fun(){
        int num[] = {1,2,3};
        List<Integer> list = Arrays.asList(num);
        list.forEach(c-> System.out.print(c+" "));
        
        String str[] = {"1","2","3"};
        List<String> list1 = Arrays.asList(str);
        list1.forEach(c-> System.out.print(c+" "));
    }

看起来是不是很对??是不是很优秀,是不是都对,,我学java大二开始一直到现在,,一直以为数组及转换集合就是这么转换的。。。。。

感觉自己像个白痴,日了,上面的代码只有String的数组转换集合是对的,只有他是对的,,int根本就不对,我也是做了好久的题才感觉不对劲,很迷惑,我也不知道为啥他就不对了,,

我搜了一下,大概是这样的,这一部分的底层源码是这样的(显一下B格):

    * @param <T> the class of the objects in the array
     * @param a the array by which the list will be backed
     * @return a list view of the specified array
     */
    @SafeVarargs
    @SuppressWarnings("varargs")
    public static <T> List<T> asList(T... a) {
        return new ArrayList<>(a);
    }

说实话,,我没看懂,英语四级都没过,,我翻译都费劲,但是看这个大哥哥的博客我大概是看懂了https://blog.csdn.net/m0_37450089/article/details/80297639,看到这个文章的可以直接去看他的博客了,,我一大学生写的没啥营养

抱怨完了,接下来记录一下数组对List的转换:

首先是数组转换成集合

我只写常用的奥

基本类型转换,jdk8中是这样的:

    public void fun(){
        int num[] = {1,2,3};
        List<Integer> list = Arrays.stream(num).boxed().collect(Collectors.toList());
        list.forEach(c-> System.out.print(c+" "));

        String str[] = {"1","2","3"};
        List<String> list1 = Arrays.asList(str);
        list1.forEach(c-> System.out.print(c+" "));
    }

就是大概意思我觉得吧,,就是先转换成stream,前面咱定义的泛型不是包装类Integer嘛,那我们总不能直接写基本类型,所以我们得调用boxed方法进行装箱,形成Integer,然后再调用最后一个方法,就转换成功了,至于那个String类型,他是个引用类型,他不叫基本数据类型啊,那他就可以直接转,具体咋回事,估计我以后会知道,等我四级过了吧

然后是集合转换成数组

public void fun2(){
        List<Integer> list = new ArrayList(){{
            for(int i=0 ; i<10 ; i++){
                add(i);
            }
        }};
        int num[] = list.stream().mapToInt(Integer::valueOf).toArray();

        List<String> list1 = new ArrayList<String>(){{
            for(int i=0 ; i<10 ; i++){
                add(String.valueOf(i));
            }
        }};
        String str[] = list1.toArray(new String[0]);
        for (int i=0 ; i<list1.size() ; i++){
            System.out.print(str[i]+" ");
        }
    }

大概就是这个样子,,我暂时还整不明白为啥,慢慢学吧,总归要先记住。



这篇关于java int[]如何转换成ArrayList的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程