java中数组和List的相互转换

在Java的线上业务开发中,各种数据结构之间的转换是必备的技能。Java中数组和List之间的相互转换是常见的数据结构之间的转换,更一般的说是对字符串切分,并将其转换成List,List和String数组的相互转换整理如下。

1. String数组转换成List

1.1. 方法一:使用List的add()方法

通过遍历String数组,并将遍历后的元素通过add()方法添加到List中。

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

public class ArrayToListTest {
    public static void main(String[] args) {
        String[] testStrArray = {"a", "b", "c", "d"};
        List<String> arrayList = new ArrayList<>();
        for (String s : testStrArray) {
            arrayList.add(s);
        }
        for (String s : arrayList) {
            System.out.println(s);
        }
    }
}

1.2. 方法二:使用Collections的addAll()方法

java.util.Collections是一个包装类。它包含有各种有关集合操作的静态多态方法。addAll()方法如下所示:

@SafeVarargs
public static <T> boolean addAll(Collection<? super T> c,
                             T... elements)

通过Collections的addAll()方法可以将String数组中的元素添加到List中。

import java.util.ArrayList;
import java.util.Collections;
import java.util.List;

public class ArrayToListTest {
    public static void main(String[] args) {
        String[] testStrArray = {"a", "b", "c", "d"};
        List<String> arrayList = new ArrayList<>();
        Collections.addAll(arrayList, testStrArray);
        for (String s : arrayList) {
            System.out.println(s);
        }
    }
}

1.3. 方法三:使用Arrays.asList

使用Arrays.asList()方法可以方便地将String数组转换成List。

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

public class ArrayToListTest {
    public static void main(String[] args) {
        String[] testStrArray = {"a", "b", "c", "d"};
        List<String> arrayList = Arrays.asList(testStrArray);
        for (String s : arrayList) {
            System.out.println(s);
        }
    }
}

2. List转换成String数组

2.1. 方法一:直接添加到数组

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

public class ListToArrayTest {
    public static void main(String[] args) {
        List<String> arrayList = new ArrayList<>();
        arrayList.add("a");
        arrayList.add("b");
        arrayList.add("c");
        arrayList.add("d");

        String[] testStrArray = new String[arrayList.size()];
        for (int i = 0; i < testStrArray.length; i++) {
            testStrArray[i] = arrayList.get(i);
        }

        for (String s : testStrArray) {
            System.out.println(s);
        }
    }
}

2.2. 方法二:使用List的toArray()方法

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

public class ListToArrayTest {
    public static void main(String[] args) {
        List<String> arrayList = new ArrayList<>();
        arrayList.add("a");
        arrayList.add("b");
        arrayList.add("c");
        arrayList.add("d");

        String[] testStrArray = arrayList.toArray(new String[arrayList.size()]);

        for (String s : testStrArray) {
            System.out.println(s);
        }
    }
}