Konvertieren von ArrayList in Int Array in Java

Joel Swapnil Singh 12 Oktober 2023
  1. Konvertierung einer Arrayliste in ein Int-Array in Java
  2. Möglichkeiten zum Konvertieren einer Arrayliste in ein Int-Array in Java
Konvertieren von ArrayList in Int Array in Java

Wir können sowohl primitive Datentypen (Datentypen mit einer definierten Größe und enthalten Daten ähnlicher Typen wie Byte, Char, Short, Int usw.) als auch Klassenobjekte in einem Array speichern.

Wohingegen wir nur Klassenobjekte in einer ArrayList speichern können. Außerdem hat eine ArrayList eine dynamische Länge, die je nach Anzahl der Elemente zunehmen oder abnehmen kann.

In diesem Artikel werden verschiedene Möglichkeiten zum Konvertieren einer Array-Liste in ein int-Array in Java besprochen.

Konvertierung einer Arrayliste in ein Int-Array in Java

Wir können alle Operationen ausführen, die mit einem Array mit Hilfe einer ArrayList durchgeführt werden.

Aber eine ArrayList ist vergleichsweise langsam bei der Ausführung verschiedener Operationen. Dies liegt daran, dass eine ArrayList eine Sammlung von Aktionen wie get(), put(), resize() und viele andere hat, die sich alle auf die CPU-Zeit und die Speicherauslastung auswirken.

Wenn Sie einige Aktionen nur für Daten mit fester Größe ausführen müssen, müssen Sie immer Arrays anstelle von ArrayList verwenden.

Möglichkeiten zum Konvertieren einer Arrayliste in ein Int-Array in Java

Angenommen, wir erhalten eine ArrayList von ganzen Zahlen. Wir müssen die ArrayList in ein int Array konvertieren. Wir können dies mit einer for-Schleife, der Object[] toArray()-Methode, der T[] toArray()-Methode und der mapToInt()-Methode tun.

Lassen Sie uns jeden der Ansätze einzeln besprechen.

Umwandlung von Arraylist in Int Array mit einer for-Schleife

Wir können die ArrayList mithilfe einer for-Schleife manuell in ein int-Array konvertieren. Wenn wir eine ArrayList erhalten, deklarieren wir zuerst ein int-Array mit der gleichen Größe wie die ArrayList.

Wir können die Funktion size() verwenden, um die Größe der ArrayList zu berechnen. Wir können jetzt die Datenelemente aus der ArrayList in das int-Array kopieren.

Dazu verwenden wir die Methode get() und die for-Schleife, um die ArrayList-Elemente zu durchlaufen. Diesen Ansatz haben wir im Folgenden in der Funktion solve() implementiert.

Werfen wir einen Blick auf den folgenden Code, um zu verstehen, wie er funktioniert.

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
  }
}

Ausgabe:

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Konvertierung der Arrayliste in ein Int-Array mit der Funktion Object[] toArray()

Wir können auch die Funktion Object[] toArray() verwenden, um eine ArrayList in ein int-Array in Java zu konvertieren.

Wenn wir eine ArrayList erhalten, erstellen wir zuerst ein Object-Objekt und verwenden die Funktion toArray(). Beachten Sie, dass die Methode toArray() ein Array vom Typ Object zurückgibt.

Um dies zu eliminieren, müssen wir es in den gewünschten Datentyp (in diesem Fall int) umwandeln, um Kompilierungsfehler zu vermeiden. Diesen Ansatz haben wir im Folgenden in der Funktion solve() implementiert.

Werfen wir einen Blick auf den folgenden Code, um zu verstehen, wie er funktioniert.

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
  }
}

Ausgabe:

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Konvertierung von Arraylist in Int Array mit der Funktion T[] toArray

Wir können auch die Funktion T[] toArray() verwenden, um eine ArrayList in ein int-Array in Java zu konvertieren. Wenn eine ArrayList angegeben wird, erstellen wir zuerst ein Integer-Objekt und verwenden die Funktion toArray().

Wenn das Array bei dieser Methode nicht groß genug ist, wird für diesen Zweck ein neues Array desselben Typs zugewiesen. Diesen Ansatz haben wir im Folgenden in der Funktion solve() implementiert.

Werfen wir einen Blick auf den folgenden Code, um zu verstehen, wie er funktioniert.

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
  }
}

Ausgabe:

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Konvertierung der Arrayliste in ein Int-Array mit der Funktion mapToInt()

Wir können eine ArrayList auch in ein int-Array in Java umwandeln, indem wir die Methode streams() aus der Liste mit der Funktion mapToInt() kombinieren, die die Daten in der ArrayList in primitive Integer-Werte umwandelt. Dies ist eine neue und faszinierende Methode zum Konvertieren einer ArrayList in ein Integer-Array, auf das ab Java 8 zugegriffen werden kann.

Wenn eine ArrayList angegeben wird, rufen wir zuerst die Funktion stream() für die bereitgestellte ArrayList auf. Danach rufen wir die Methode mapToInt() auf, die einen Integer-Stream bestehend aus Ergebnissen zurückgibt.

Danach rufen wir die Methode toArray() auf, die die extrahierten Ergebnisse in ein int-Array umwandelt. Diesen Ansatz haben wir im Folgenden in der Funktion solve() implementiert.

Werfen wir einen Blick auf den folgenden Code, um zu verstehen, wie er funktioniert.

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
  }
}

Ausgabe:

ArrayList elements
10
20
30
40
50
Array elements
10
20
30
40
50

Verwandter Artikel - Java Array

Verwandter Artikel - Java ArrayList