zoukankan      html  css  js  c++  java
  • java中数组与集合相互转化

    一、数组转化成集合

            使用Arrays.asList(T... a)方法,将数组转换成List集合。

            代码实例:    

    package cn.ccut;
    
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;
    
    public class Demo {
        public static void main(String[] args) {
            Integer[] array = new Integer[]{1, 2, 3};
    
            List<Integer> list = Arrays.asList(array);
            list.forEach(student -> System.out.println(student));
        }
    }

    二、将集合转换成指定类型的数组

            使用ArrayList(其他集合类均可)集合的toArray(T[] a)方法。

            示例代码:

    package cn.ccut;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class Demo {
        public static void main(String[] args) {
            List<Student> list = new ArrayList<>();
    
            list.add(new Student("1号"));
            list.add(new Student("2号"));
    
            Student[] students = list.toArray(new Student[0]);
            for (Student s : students) {
                System.out.println(s);
            }
        }
    }

    ArrayList的toArray(T[] a)方法详解

            方法中所传入的参数主要作用是指定该方法的返回数组的类型,传入数组有两种情况:

                    1.参数数组的长度小于集合长度时,直接将集合转换成参数的数据类型返回。

                    2.参数数组的长度大于集合长度时,将集合转换成参数的数据类型并且返回的数组长度等于参数数组的长度(使用null填充)。

    在ArrayList中源码如下:

    @SuppressWarnings("unchecked")
        public <T> T[] toArray(T[] a) {
            if (a.length < size)
                // Make a new array of a's runtime type, but my contents:
                return (T[]) Arrays.copyOf(elementData, size, a.getClass());
            System.arraycopy(elementData, 0, a, 0, size);
            if (a.length > size)
                a[size] = null;
            return a;
        }

    总结:

            我的需求是将list集合转换成数组,数组长度等于原集合的长度,故我传入的参数为new Student[0]。

  • 相关阅读:
    Let Us Adore 让我们来敬拜祂 中文歌词
    Way Maker 开路者 歌词
    Great Things 伟大的事 歌词
    永活盼望 Living Hope 歌词
    TP 控制器和模型里面order 写法不同
    服务器安全记录
    NOTIC: [8] Trying to get property of non-object
    Declaration of AdminControllerGameController::delete() should be compatible with。。
    vi编辑器操作 快捷键
    Camtasia如何录制小文件视频
  • 原文地址:https://www.cnblogs.com/IdealSpring/p/11871213.html
Copyright © 2011-2022 走看看