Heim >Java >javaLernprogramm >Welche Methoden gibt es, um Duplikate aus Java-Arrays zu entfernen?

Welche Methoden gibt es, um Duplikate aus Java-Arrays zu entfernen?

DDD
DDDOriginal
2023-12-22 16:26:171617Durchsuche

Zu den Java-Array-Deduplizierungsmethoden gehören: 1. Mit der Stream-API von Java 8 können Sie die Methode „distinct()“ der Stream-API verwenden, um doppelte Elemente im Array zu entfernen kann keine doppelten Elemente enthalten. 3. TreeSet ist eine geordnete Menge und kann keine doppelten Elemente enthalten.

Welche Methoden gibt es, um Duplikate aus Java-Arrays zu entfernen?

Das Betriebssystem dieses Tutorials: Windows 10-System, Dell G3-Computer.

In Java gibt es viele Möglichkeiten, doppelte Elemente aus einem Array zu entfernen. Hier sind einige gängige Methoden:

1. Verwendung der Stream-API von Java 8

Java 8 führte die Stream-API ein, die die Verarbeitung von Daten präziser und flexibler macht. Sie können die Methode „distinct()“ der Stream-API verwenden, um doppelte Elemente aus einem Array zu entfernen.

import java.util.Arrays;  
import java.util.stream.Collectors;  
  
public class Main {  
    public static void main(String[] args) {  
        int[] array = {1, 2, 3, 2, 1, 4, 5, 4};  
        int[] distinctArray = Arrays.stream(array).distinct().toArray();  
        System.out.println(Arrays.toString(distinctArray));  // 输出 [1, 2, 3, 4, 5]  
    }  
}

2. HashSet verwenden

HashSet ist ein Satz, der keine doppelten Elemente enthalten kann. Sie können ihn verwenden, um doppelte Elemente in einem Array zu entfernen. Es ist zu beachten, dass die Verwendung dieser Methode die Reihenfolge des ursprünglichen Arrays ändert.

import java.util.Arrays;  
import java.util.HashSet;  
import java.util.Set;  
  
public class Main {  
    public static void main(String[] args) {  
        int[] array = {1, 2, 3, 2, 1, 4, 5, 4};  
        int[] distinctArray = new int[new HashSet<>(Arrays.asList(array)).size()];  
        int i = 0;  
        for (int num : array) {  
            if (Arrays.binarySearch(distinctArray, num) < 0) {  
                distinctArray[i++] = num;  
            }  
        }  
        System.out.println(Arrays.toString(distinctArray));  // 输出 [1, 2, 3, 4, 5]  
    }  
}

3. TreeSet verwenden

TreeSet ist eine geordnete Menge, es darf keine doppelten Elemente enthalten. Im Vergleich zu HashSet behält die Verwendung von TreeSet die Reihenfolge des ursprünglichen Arrays bei. Es ist jedoch zu beachten, dass die Verwendung von TreeSet zusätzlichen Speicherplatz zum Speichern von Elementen erfordert, sodass die Speichernutzung möglicherweise teurer ist als die von HashSet.

import java.util.Arrays;  
import java.util.TreeSet;  
import java.util.Set;  
  
public class Main {  
    public static void main(String[] args) {  
        int[] array = {1, 2, 3, 2, 1, 4, 5, 4};  
        TreeSet<Integer> set = new TreeSet<>();  
        for (int num : array) {  
            set.add(num);  
        }  
        int[] distinctArray = new int[set.size()];  
        int i = 0;  
        for (int num : set) {  
            distinctArray[i++] = num;  
        }  
        System.out.println(Arrays.toString(distinctArray));  // 输出 [1, 2, 3, 4, 5]  
    }  
}

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es, um Duplikate aus Java-Arrays zu entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Was ist ein Java-Compiler?Nächster Artikel:Was ist ein Java-Compiler?