在 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 中的列表與陣列