在 Java 中将 ArrayList 转换为 Int 数组
我们可以将原始数据类型(具有定义大小的数据类型,包括类似类型的数据,如字节、字符、短、整数等)和类对象存储在数组中。
而我们只能将类对象存储在 ArrayList 中。此外,ArrayList 具有动态长度,可以根据元素的数量增加或减少。
在本文中,我们将讨论在 Java 中将数组列表转换为 int 数组的不同方法。
在 Java 中需要将 Arraylist 转换为 Int 数组
我们可以在 ArrayList 的帮助下执行使用数组完成的所有操作。
但是 ArrayList 在执行不同的操作时相对较慢。这是因为 ArrayList 有一系列动作,如 get()
、put()
、resize()
等,所有这些都会影响 CPU 时间和内存利用率。
如果你只需要对固定大小的数据执行某些操作,则必须始终使用 Arrays 而不是 ArrayList。
在 Java 中将 Arraylist 转换为 Int 数组的方法
假设我们得到一个整数的 ArrayList。我们需要将 ArrayList 转换为 int Array。我们可以使用 for
循环、Object[] toArray()
方法、T[] toArray()
方法和 mapToInt()
方法来做到这一点。
让我们一一讨论每种方法。
使用 for
循环将 Arraylist 转换为 Int 数组
我们可以使用 for 循环手动将 ArrayList 转换为 int 数组。如果给定一个 ArrayList,我们将首先声明一个与 ArrayList 大小相同的 int 数组。
我们可以使用 size()
函数来计算 ArrayList 的大小。我们现在可以将 ArrayList 中的数据元素复制到 int 数组中。
为此,我们将使用 get()
方法和 for 循环来遍历 ArrayList 元素。我们在下面的 solve()
函数中实现了这种方法。
让我们看一下下面的代码,以了解它是如何工作的。
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void solve(List<Integer> nums) {
int[] arr = new int[nums.size()];
for (int i = 0; i < nums.size(); i++) {
arr[i] = nums.get(i);
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void main(String[] args) {
List<Integer> nums = new ArrayList<Integer>();
nums.add(10);
nums.add(20);
nums.add(30);
nums.add(40);
nums.add(50);
System.out.println("ArrayList elements");
for (int i = 0; i < nums.size(); i++) {
System.out.println(nums.get(i));
}
System.out.println("Array elements");
solve(nums); // ArrayList to Array Conversion
}
}
输出:
ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50
使用 Object[] toArray()
函数将 Arraylist 转换为 Int 数组
我们还可以使用 Object[] toArray()
函数将 ArrayList 转换为 Java 中的 int 数组。
如果给定一个 ArrayList,我们将首先构建一个 Object 对象并使用 toArray()
函数。请记住,toArray()
方法返回一个 Object 类型的数组。
为了消除这种情况,我们必须将其类型转换为所需的数据类型(在本例中为 int)以避免编译错误。我们在下面的 solve()
函数中实现了这种方法。
让我们看一下下面的代码,以了解它是如何工作的。
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void solve(List<Integer> nums) {
Object[] obj_arr = nums.toArray();
int[] arr = new int[nums.size()];
for (int i = 0; i < obj_arr.length; i++) {
arr[i] = (int) obj_arr[i];
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void main(String[] args) {
List<Integer> nums = new ArrayList<Integer>();
nums.add(10);
nums.add(20);
nums.add(30);
nums.add(40);
nums.add(50);
System.out.println("ArrayList elements");
for (int i = 0; i < nums.size(); i++) {
System.out.println(nums.get(i));
}
System.out.println("Array elements");
solve(nums); // ArrayList to Array Conversion
}
}
输出:
ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50
使用 T[] toArray
函数将 Arraylist 转换为 Int 数组
我们还可以使用 T[] toArray()
函数将 ArrayList 转换为 Java 中的 int 数组。如果给定一个 ArrayList,我们将首先构建一个 Integer 对象并使用 toArray()
函数。
在这种方法中,如果数组不够大,则为此分配一个相同类型的新数组。我们在下面的 solve()
函数中实现了这种方法。
让我们看一下下面的代码,以了解它是如何工作的。
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void solve(List<Integer> nums) {
Integer[] int_arr = new Integer[nums.size()];
int_arr = nums.toArray(int_arr);
int[] arr = new int[nums.size()];
for (int i = 0; i < int_arr.length; i++) {
arr[i] = int_arr[i];
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void main(String[] args) {
List<Integer> nums = new ArrayList<Integer>();
nums.add(10);
nums.add(20);
nums.add(30);
nums.add(40);
nums.add(50);
System.out.println("ArrayList elements");
for (int i = 0; i < nums.size(); i++) {
System.out.println(nums.get(i));
}
System.out.println("Array elements");
solve(nums); // ArrayList to Array Conversion
}
}
输出:
ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50
使用 mapToInt()
函数将 Arraylist 转换为 Int 数组
我们还可以将 ArrayList 转换为 Java 中的 int 数组,方法是将列表中的 streams()
方法与 mapToInt()
函数相结合,该函数将 ArrayList 中的数据转换为原始整数值。这是一种将 ArrayList 转换为可从 Java 8 开始访问的整数数组的新方法。
如果给定一个 ArrayList,我们将首先在提供的 ArrayList 上调用 stream()
函数。之后,我们将调用 mapToInt()
方法,该方法返回一个包含结果的整数流。
之后,我们将调用 toArray()
方法,它将提取的结果转换为 int 数组。我们在下面的 solve()
函数中实现了这种方法。
让我们看一下下面的代码,以了解它是如何工作的。
import java.io.*;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void solve(List<Integer> nums) {
int[] arr = nums.stream().mapToInt(i -> i).toArray();
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void main(String[] args) {
List<Integer> nums = new ArrayList<Integer>();
nums.add(10);
nums.add(20);
nums.add(30);
nums.add(40);
nums.add(50);
System.out.println("ArrayList elements");
for (int i = 0; i < nums.size(); i++) {
System.out.println(nums.get(i));
}
System.out.println("Array elements");
solve(nums); // ArrayList to Array Conversion
}
}
输出:
ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50
相关文章 - Java Array
- 如何在 Java 中连接两个数组
- 如何在 Java 中以十六进制字符串转换字节数组
- 用 Java 从数组中删除重复项
- 在 Java 中对数组进行切片
- 在 Java 中不使用 sort() 方法对数组进行排序
- Java 中的列表与数组