Java 学习笔记

所有文章
📖 最新文章 transmittable-thread-local 库 JOOR 反射库 Lombok 库:为你减少样板代码 Slf4j 日志组件的使用 加速maven、gradle依赖下载
📖 Java 基础 安装 第一个程序 使用 UTF-8 编写代码 空值 null 正则表达式 线程 日期/时间 匿名类 枚举 ThreadLocal 线程本地变量 动态代理 jar 命令

Java List 和 数组的互相转换


List 转换成数组

使用 List 的 toArray() 方法转换成 Object 数组

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListArrayTest {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("北京");
        list.add("上海");
        System.out.println("List: " + list);

        Object[] arr = list.toArray();
        System.out.println("数组:" + arr);
        System.out.println("数组内容:" + Arrays.toString(arr));
    }

}

使用 List 的 T[] toArray(T[] a) 方法转换成同类型数组

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListArrayTest {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("北京");
        list.add("上海");
        System.out.println("List: " + list);

        String[] arr = new String[list.size()];
        String[] arr2 = list.toArray(arr);

        System.out.println( "arr 和 arr2 是否相同:" + (arr == arr2) );
        System.out.println("数组内容:" + Arrays.toString(arr));
        System.out.println("数组内容:" + Arrays.toString(arr2));
    }

}

运行结果:

List: [北京, 上海]
arr 和 arr2 是否相同:true
数组内容:[北京, 上海]
数组内容:[北京, 上海]

如果参数中的数组长度不足,toArray 函数不会填充作为参数的数组,而是新建一个数据填充,然后返回:

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

public class ListArrayTest {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("北京");
        list.add("上海");
        System.out.println("List: " + list);

        String[] arr = new String[0];
        String[] arr2 = list.toArray(arr);

        System.out.println( "arr 和 arr2 是否相同:" + (arr == arr2) );
        System.out.println("数组内容:" + Arrays.toString(arr));
        System.out.println("数组内容:" + Arrays.toString(arr2));
    }

}

结果:

List: [北京, 上海]
arr 和 arr2 是否相同:false
数组内容:[]
数组内容:[北京, 上海]

数组转换为 List

import java.util.Arrays;
import java.util.List;

public class ListArrayTest {

    public static void main(String[] args) {
        String[] arr = new String[] {"北京", "上海"};
        List<String> list = Arrays.asList(arr);
        System.out.println("数组内容:" + Arrays.toString(arr));
        System.out.println("List: " + list);
    }

}

运行结果:

数组内容:[北京, 上海]
List: [北京, 上海]

( 本文完 )

文章目录