介绍
数组是 Java 中广泛使用的线性数据结构,用于存储数据集合。由于元素在内存中是连续分配的,因此可以通过索引随机访问数组中的任何元素。另一方面,List 接口提供了一种维护有序数据集合的方式,并由 ArrayList 和 LinkedList 等类实现。在本实验中,我们将学习如何使用 Java 中的各种方法将数组转换为列表,以及将列表转换为数组。
数组是 Java 中广泛使用的线性数据结构,用于存储数据集合。由于元素在内存中是连续分配的,因此可以通过索引随机访问数组中的任何元素。另一方面,List 接口提供了一种维护有序数据集合的方式,并由 ArrayList 和 LinkedList 等类实现。在本实验中,我们将学习如何使用 Java 中的各种方法将数组转换为列表,以及将列表转换为数组。
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() 方法将数组转换为列表:
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() 方法也可以用于将数组转换为 ArrayList。我们将按照以下步骤使用 Lists.newArrayList() 方法将数组转换为列表:
Lists.newArrayList() 方法将数组转换为 ArrayListArrayListimport 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() 方法将数组中的元素添加到列表中。我们将按照以下步骤编写自己的方法:
ArrayListadd() 方法将每个元素添加到 ArrayList 中ArrayListimport 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() 方法将列表转换为数组:
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() 方法也可以用于将列表转换为数组。我们将按照以下步骤使用 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 中的编程技能。