Java各类数组与容器的互转

不知小伙伴们是否常常在刷题时,因为数组与容器应该如何使用函数进行转换而感到苦恼。那么这篇文章将会细数各种类型,如一维int数组、二维int数组、char数组、String数组。

一、一维int数组与List<Integer>

public class IntArrayAndIntegerList {
    
    

    public static void main(String[] args) {
    
    
        int[] nums = {
    
    1, 2, 3, 4, 5};

        //数组转List
        //一.逐个添加,基本做法
        List<Integer> numList2 = new ArrayList<>();
        for (int num : nums) {
    
    
            numList2.add(num);
        }

        //二.Stream流计算,推荐做法
        //1.数组转流
        //2.boxed 基本类型装箱成对象
        //3.对象数组转List集合
        List<Integer> numList1 = Arrays.stream(nums).boxed().collect(Collectors.toList());

        //List转回数组
        //一.逐个添加, 基本做法
        int[] nums1 = new int[numList1.size()];
        for (int i = 0; i < numList1.size(); i++) {
    
    
            nums[i] = numList1.get(i);
        }

        //二.Stream流计算,推荐做法
        //1.List转流
        //2.mapToInt 将对象转成基本类型
        //3.List转数组
        int[] nums2 = numList1.stream().mapToInt(Integer::valueOf).toArray();
    }
}

二、二维int数组与List<int []>

public class InteArrayArrayAndIntArrayList {
    
    

    public static void main(String[] args) {
    
    
        int [][] nums = {
    
     {
    
    1, 2, 3}, {
    
    4, 5, 6}, {
    
    7, 8, 9}};
        //数组转List,使用Arrays.asList
        List <int []> numList = Arrays.asList(nums);

        //List转数组,使用list.toArray,传入数组构造器或者类型强转
        int [][] nums1 = numList.toArray(new int [3][3]);
        int [][] nums2 = (int[][]) numList.toArray();
    }
}

三、char数组转String

public class CharArrayAndString {
    
    
    public static void main(String[] args) {
    
    
        char [] chars = {
    
    'a', 'b', 'c', 'd'};

        //一.数组转字符串,使用String.valueOf
        String s = String.valueOf(chars);

        //二.字符串转数组,使用String.toCharArray
        char [] chars1 = s.toCharArray();
    }
}

四、String数组与List<String>

public class StringArrayAndStringList {
    
    

    public static void main(String[] args) {
    
    
        String [] strings = {
    
    "abc", "def", "ghi"};

        //一.数组转List
        List<String> stringList = Arrays.asList(strings);

        //二.List转数组
        String [] strings1 = stringList.toArray(new String[3]);
        String [] strings2 = (String[]) stringList.toArray();

        //三.二维数组转List<String>
        char [][] chars = {
    
    {
    
    'a', 'b','c'}, {
    
    'd', 'e', 'f'}, {
    
    'h', 'i', 'j'}};
        List<String> stringList1 = new ArrayList<>();
        for(char [] a : chars){
    
    
            String tmp = String.valueOf(a);
            stringList1.add(tmp);
        }

        //四.List<String>转二维数组
        char [][] chars1 = new char [3][3];
        for(int i =0; i < stringList.size(); i ++){
    
    
            chars1[i] = stringList.get(i).toCharArray();
        }
    }
}


猜你喜欢

转载自blog.csdn.net/weixin_44580146/article/details/110007742