介绍
数组是 Java 中广泛使用的线性数据结构,用于存储数据集合。由于元素在内存中是连续分配的,因此可以通过索引随机访问数组中的任何元素。另一方面,List 接口提供了一种维护有序数据集合的方式,并由 ArrayList 和 LinkedList 等类实现。在本实验中,我们将学习如何使用 Java 中的各种方法将数组转换为列表,以及将列表转换为数组。
使用 asList() 方法将数组转换为列表
Arrays 类的 asList() 方法可用于将数组转换为列表。它以数组作为参数,并返回其元素的列表。我们将按照以下步骤使用 asList() 方法将数组转换为列表:
- 创建一个字符串数组和一个整数数组,并为其初始化值
- 使用
Arrays.asList()方法将数组转换为列表 - 打印列表
import java.util.Arrays;
import java.util.List;
public class ArrayToList {
public static void main(String[] args) {
// Step 1: Converting Array to List using asList() Method
// Creating a string array
String[] strArr = {"this", "is", "a", "string", "array"};
// Creating an integer array
Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
// Converting arrays to lists using asList() method
List<String> strList = Arrays.asList(strArr);
List<Integer> intList = Arrays.asList(intArr);
// Printing the lists
System.out.println("Array to List using asList() Method: ");
System.out.println(strList);
System.out.println(intList);
}
}
要运行代码,请打开终端,导航到项目文件夹并输入以下命令:javac ArrayToList.java && java ArrayToList
使用 Collections.addAll() 方法将数组转换为列表
Collections.addAll() 方法可用于将数组的所有元素添加到列表中。我们首先需要创建一个空列表,然后将现有数组和新列表作为参数传递给此方法。我们将按照以下步骤使用 Collections.addAll() 方法将数组转换为列表:
- 创建一个字符串数组和一个整数数组,并为其初始化值
- 使用
ArrayList类创建相应数据类型的空列表 - 使用
Collections.addAll()方法将数组的元素添加到列表中 - 打印列表
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ArrayToList {
public static void main(String[] args) {
// Step 2: Converting Array to List using Collections.addAll() Method
// Creating a string array
String[] strArr = {"this", "is", "a", "string", "array"};
// Creating an integer array
Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
// Creating empty lists of the corresponding data types
List<String> strList = new ArrayList<String>();
List<Integer> intList = new ArrayList<Integer>();
// Using the Collections.addAll() method to add the elements of the arrays to the lists
Collections.addAll(strList, strArr);
Collections.addAll(intList, intArr);
// Printing the lists
System.out.println("Array to List using Collections.addAll() Method: ");
System.out.println(strList);
System.out.println(intList);
}
}
要运行代码,请打开终端,导航到项目文件夹并输入以下命令:javac ArrayToList.java && java ArrayToList
使用 Guava 的 Lists.newArrayList() 方法将数组转换为列表
Guava 库中的 Lists.newArrayList() 方法也可以用于将数组转换为 ArrayList。我们将按照以下步骤使用 Lists.newArrayList() 方法将数组转换为列表:
- 创建一个字符串数组和一个整数数组,并为其初始化值
- 使用
Lists.newArrayList()方法将数组转换为ArrayList - 打印
ArrayList
import com.google.common.collect.Lists;
import java.util.List;
public class ArrayToList {
public static void main(String[] args) {
// Step 3: Converting Array to List using Guava's Lists.newArrayList() Method
// Creating a string array
String[] strArr = {"this", "is", "a", "string", "array"};
// Creating an integer array
Integer[] intArr = {2, 3, 5, 7, 11, 13, 17};
// Converting arrays to ArrayLists using Guava's Lists.newArrayList() method
List<String> strList = Lists.newArrayList(strArr);
List<Integer> intList = Lists.newArrayList(intArr);
// Printing the ArrayLists
System.out.println("Array to List using Guava's Lists.newArrayList() Method: ");
System.out.println(strList);
System.out.println(intList);
}
}
要运行代码,请打开终端,导航到项目文件夹并输入以下命令:javac ArrayToList.java && java ArrayToList
编写自定义方法将数组转换为列表
我们也可以编写自己的方法将数组转换为列表。我们将使用 List 接口的 add() 方法将数组中的元素添加到列表中。我们将按照以下步骤编写自己的方法:
- 编写一个方法,该方法以字符串数组作为参数并返回字符串列表
- 在方法内部创建一个空的
ArrayList - 遍历数组并使用
add()方法将每个元素添加到ArrayList中 - 返回
ArrayList
import java.util.ArrayList;
import java.util.List;
public class ArrayToList {
// Step 4: Writing our own method to convert Array to List
public static List<String> arrayToList(String[] strArr) {
List<String> strList = new ArrayList<String>();
for(int i = 0; i <= strArr.length - 1; i++)
strList.add(strArr[i]);
return strList;
}
public static void main(String[] args) {
// Creating a string array
String[] strArr = {"this", "is", "a", "string", "array"};
// Converting array to list using our own method
List<String> strList = arrayToList(strArr);
// Printing the list
System.out.println("Array to List using our own method: ");
System.out.println(strList);
}
}
要运行代码,请打开终端,导航到项目文件夹并输入以下命令:javac ArrayToList.java && java ArrayToList
使用 toArray() 方法将列表转换为数组
toArray() 方法可用于将列表转换为数组。它以数组作为参数,并返回包含列表元素的数组。我们将按照以下步骤使用 toArray() 方法将列表转换为数组:
- 创建一个
ArrayList并向其中添加元素 - 使用
toArray()方法将ArrayList转换为数组 - 打印数组
import java.util.ArrayList;
import java.util.List;
public class ArrayToList {
public static void main(String[] args) {
// Step 5: Converting List to Array using toArray() Method
// Creating an ArrayList
List<String> strList = new ArrayList<String>();
strList.add("this");
strList.add("is");
strList.add("a");
strList.add("string");
strList.add("array");
// Converting ArrayList to array using toArray() method
String[] strArr = strList.toArray(new String[0]);
// Printing the array
System.out.println("List to Array using toArray() Method: ");
for(int i = 0; i <= strArr.length - 1; i++)
System.out.print(strArr[i] + " ");
}
}
要运行代码,请打开终端,导航到项目文件夹并输入以下命令:javac ArrayToList.java && java ArrayToList
使用 Guava 的 Iterables.toArray() 方法将列表转换为数组
Guava 库中的 Iterables.toArray() 方法也可以用于将列表转换为数组。我们将按照以下步骤使用 Iterables.toArray() 方法将列表转换为数组:
- 创建一个
ArrayList并向其中添加元素 - 使用
Iterables.toArray()方法将ArrayList转换为数组 - 打印数组
import com.google.common.collect.Iterables;
import java.util.ArrayList;
import java.util.List;
public class ArrayToList {
public static void main(String[] args) {
// Step 6: Converting List to Array using Guava's Iterables.toArray() Method
// Creating an ArrayList
List<String> strList = new ArrayList<String>();
strList.add("this");
strList.add("is");
strList.add("a");
strList.add("string");
strList.add("array");
// Converting ArrayList to array using Guava's Iterables.toArray() method
String[] strArr = Iterables.toArray(strList, String.class);
// Printing the array
System.out.println("List to Array using Guava's Iterables.toArray() Method: ");
for(int i = 0; i <= strArr.length - 1; i++)
System.out.print(strArr[i] + " ");
}
}
要运行代码,请打开终端,导航到项目文件夹并输入以下命令:javac ArrayToList.java && java ArrayToList
编写自定义方法将列表转换为数组
我们也可以编写自己的方法将列表转换为数组。我们将遍历列表并使用 get() 方法获取每个元素,然后使用数组索引将其添加到数组中。我们将按照以下步骤编写自己的方法:
- 编写一个方法,该方法以字符串列表作为参数并返回字符串数组
- 在方法内部创建一个与列表大小相同的空字符串数组
- 遍历列表并使用数组索引将每个元素添加到数组中
- 返回数组
import java.util.ArrayList;
import java.util.List;
public class ArrayToList {
public static String[] listToArray(List<String> strList) {
String[] strArr = new String[strList.size()];
for(int i = 0; i <= strList.size() - 1; i++)
strArr[i] = strList.get(i);
return strArr;
}
public static void main(String[] args) {
// Writing our own method to convert List to Array
// Creating an ArrayList
List<String> strList = new ArrayList<String>();
strList.add("this");
strList.add("is");
strList.add("a");
strList.add("string");
strList.add("array");
// Converting ArrayList to array using our own method
String[] strArr = listToArray(strList);
// Printing the array
System.out.println("List to Array using our own method: ");
for(int i = 0; i <= strArr.length - 1; i++)
System.out.print(strArr[i] + " ");
}
}
要运行代码,请打开终端,导航到项目文件夹并输入以下命令:javac ArrayToList.java && java ArrayToList
总结
在本实验中,我们探索了在 Java 中将数组转换为列表以及将列表转换回数组的各种方法。我们了解了如何使用 Arrays 类的 asList() 方法、Collections 类的 addAll() 方法以及 Guava 库中的 Lists.newArrayList() 方法将数组转换为列表。我们还学习了如何使用 toArray() 方法和 Guava 库中的 Iterables.toArray() 方法将列表转换为数组。最后,我们编写了自己的方法来实现这些转换。理解将数组转换为列表以及将列表转换为数组的不同方法,可以帮助我们充分利用这两种数据结构的潜力,并提升我们在 Java 中的编程技能。



