在 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.List;
import java.util.ArrayList;
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.List;
import java.util.ArrayList;
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.List;
import java.util.ArrayList;
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.List;
import java.util.ArrayList;
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 中的纸牌洗牌
发布时间:2023/05/16 浏览次数:72 分类:Java
-
本文介绍如何在 Java 中洗一副牌。使用 Java 中的传统循环打乱 ArrayList。类似地,在 Java 中,各种方法允许用户随机播放元素。下面是演示此过程的代码块。
Java 中将列表转换为 ArrayList
发布时间:2023/05/16 浏览次数:155 分类:Java
-
在 Java 中将 List 转换为 ArrayList 的方法。在本篇文章中,我们讨论了如何在 Java 中将列表转换为 ArrayList。
Java 中 ArrayList 和 LinkedList 的区别
发布时间:2023/05/16 浏览次数:126 分类:Java
-
本文介绍 Java 中 ArrayList 和 LinkedList 的区别。ArrayList 和 LinkedList 都用于存储数据,但由于实现类型的不同而存在一些差异。
在 Java 中将 ArrayList 转换为 Set
发布时间:2023/05/16 浏览次数:182 分类:Java
-
本文介绍 Java 中 ArrayList 到 Set 的转换。ArrayList 是 List 接口的实现类,用于以线性顺序存储数据,而 set 是具有 HashSet 类来存储数据的接口。
Java 中将字节转换为整数
发布时间:2023/05/16 浏览次数:139 分类:Java
-
本文重点介绍如何使用 Byte Wrapper Class 和 Casting 在 Java 中将字节转换为 int 数据类型。字节数据类型定义为 8 位有符号二进制补码整数,而 int 数据类型可归类为 32 位有符号二进制补码整数。除
Java 错误 Class Has Been Compiled by a More Recent Version of Java Runtime
发布时间:2023/05/16 浏览次数:88 分类:Java
-
Java 错误消息 Class Has Been Compiled by a More Recent Version of Java Runtime 显示了不受支持的类版本。 它说类文件版本是63,当前Java运行时可以编译Java代码直到类文件版本61。
Java 中错误 Java.Lang.OutOfMemoryError: Unable to Create New Native Thread
发布时间:2023/05/16 浏览次数:188 分类:Java
-
在本文中,我们将了解 java.lang.OutOfMemoryError: unable to create new native thread 错误。无法在 Java 中创建新的本机线程错误
Java 中必须捕获或声明抛出未报告的异常
发布时间:2023/05/16 浏览次数:183 分类:Java
-
本文将介绍未报告的异常必须被捕获或声明为在 Java 中抛出的编译时错误。Java 是一种面向对象的强类型编译语言,具有类的概念来利用编程的不同方面,如继承和多态性。 它还很好地支持处理
Java 中错误 Error: Class, Interface, or Enum Expected 修复
发布时间:2023/05/16 浏览次数:86 分类:Java
-
Java 是一种面向对象的强类型编译语言,具有类的概念来利用编程的不同方面,如继承和多态性。 本文将介绍编译时错误 error: class, interface, or enum expected 。