List 和 数组 的转换

import org.junit.jupiter.api.Test;

import java.util.*;

public class T {
    /*
    list 转 数组

    toArray()底层是数组的拷贝,生成一个新的数组
    和原来的list底层的旧数组,是两个对象。
    所以list的改变不会影响toArray()生成的数组
    * */
    @Test
    public void listToArray() {
        List<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);

        Integer[] array = list.toArray(new Integer[list.size()]);

        list.add(33);

        System.out.println("----数组----");
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }

        System.out.println("----list----");
        list.forEach(System.out::println);

        /*执行结果:
         ----数组----
        1
        2
        ----list----
        1
        2
        33
        * */
    }

    /*
    数组 转 list
    
    底层引用同一个数组对象
    * */
    @Test
    public void arrayToList() {
        Integer[] array = {1, 2};

        List<Integer> list = Arrays.asList(array);
        array[0] = 4;

        //异常UnsupportedOperationException:Arrays.asList()不支持数据的添加和删除
        //list.add(33);


        System.out.println("----数组----");
        for (int i = 0; i < array.length; i++) {
            System.out.println(array[i]);
        }

        System.out.println("----list----");
        list.forEach(System.out::println);
        /*
        执行结果:
        ----数组----
        4
        2
        ----list----
        4
        2
        * */
    }
}
posted @ 2024-08-17 19:11  干饭达人GoodLucy  阅读(13)  评论(0编辑  收藏  举报