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]。

  • 相关阅读:
    OpenStack(queens)最小化搭建记录——控制与计算共两个节点
    CentOS7 minimal(最小化安装)后增加的软件安装
    redis
    layui 单击事件,选中 checkbox f
    DLL 引用查询工具
    自定义JS Map 函数
    修改MSSQL字段类型
    苹果ATS特性服务器配置指南 HTTPS 安卓可以用 IOS 报错。
    基础连接已经关闭: 未能为 SSL/TLS 安全通道建立信任关系。
    不能将多个项传入“Microsoft.Build.Framework.ITaskItem”类型的参数
  • 原文地址:https://www.cnblogs.com/IdealSpring/p/11871213.html
Copyright © 2011-2022 走看看