Java - 数组与List转换(测试用例)

测试用例


package com.xux.test;

import com.xux.test.bean.Student;
import org.apache.commons.lang3.ArrayUtils;

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

/**
 * 测试Array和List之间互相转换
 *
 * @author xux
 * @date 2020-12-30 21:05
 */
public class P01_TestArrayWithList {
    public static void main(String[] args) {
        test01();
        // test02();
    }

    // Integer
    //     Arrays.asList存的是原数组的引用(非基本类型)
    //         转换后可以手动将原数组置为null
    //     list.toArray会新拷贝一个数组,每次新建(非基本类型与包装类)
    private static void test01(){
        Integer[] intArr = new Integer[]{1,5,6,7,8,9};
        List<Integer> intList = Arrays.asList(intArr);
        System.out.println(intList);
        intArr[0] = 99;
        System.out.println(intList);
        intList.set(1,99);
        System.out.println(Arrays.toString(intArr));

        Integer[] intArr1 = intList.toArray(new Integer[0]);
        Integer[] intArr2 = intList.toArray(new Integer[0]);
        System.out.println(Arrays.toString(intArr1));
        System.out.println(Arrays.toString(intArr2));
        System.out.println(intArr1==intArr2);
        System.out.println(Arrays.equals(intArr1, intArr2));
        intList.set(2,99);
        System.out.println(Arrays.toString(intArr1));
        System.out.println(Arrays.toString(intArr2));

        List<Student> studentList = new ArrayList<>();
        Student s1 = new Student("xiaoming", 12);
        Student s2 = new Student("xiaopeng", 22);
        studentList.add(s1);
        studentList.add(s2);
        Student[] studentArr = studentList.toArray(new Student[0]);
        s1.setAge(99);
        s2.setAge(99);
        System.out.println(Arrays.toString(studentArr));
    }

    // int
    //     测试int数组与List的互转
    //     JDK1.8中给出了一种新的实现方式
    private static void test02(){
        int[] intArr = {1,5,8,4,3};
        // org.apache.commons-lang3
        List<Integer> intList1 = Arrays.asList(ArrayUtils.toObject(intArr));
        // at least jdk1.8
        List<Integer> intList2 = Arrays.stream(intArr).boxed().collect(Collectors.toList());
        System.out.println(intList1);

        // JDK1.7
        Integer[] intArr1 = intList1.toArray(new Integer[0]);
        // JDK1.8
        int[] intArr2 = intList1.stream().mapToInt(Integer::intValue).toArray();
        System.out.println(Arrays.toString(intArr1));
        System.out.println(Arrays.toString(intArr2));
    }
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页
实付 49.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值