Heim  >  Artikel  >  Java  >  Eine ausführliche Analyse von fünf praktischen Methoden zur Deduplizierung von Java-Arrays

Eine ausführliche Analyse von fünf praktischen Methoden zur Deduplizierung von Java-Arrays

WBOY
WBOYOriginal
2023-12-23 09:21:371602Durchsuche

Eine ausführliche Analyse von fünf praktischen Methoden zur Deduplizierung von Java-Arrays

Eingehende Analyse von fünf praktischen Methoden der Java-Array-Deduplizierung

In Java ist die Verarbeitung von Arrays ein sehr häufiger Vorgang. Die Array-Deduplizierung ist ein Problem, das in der tatsächlichen Entwicklung häufig auftritt. In diesem Artikel werden fünf praktische Methoden zur Java-Array-Deduplizierung ausführlich analysiert und spezifische Codebeispiele bereitgestellt.

1. Verwenden Sie HashSet, um Duplikate zu entfernen.
HashSet ist eine Sammlung in Java mit der Funktion der automatischen Deduplizierung. Wir können die Eigenschaften von HashSet verwenden, um Elemente im Array zu HashSet hinzuzufügen und so den Effekt der Deduplizierung zu erzielen.

import java.util.HashSet;
import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        HashSet<Integer> set = new HashSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

2. Verwenden Sie LinkedHashSet, um Duplikate zu entfernen.
LinkedHashSet ist eine Unterklasse von HashSet. Zusätzlich zur Funktion zum Entfernen von Duplikaten kann es auch die Einfügereihenfolge beibehalten. Wenn Sie die ursprüngliche Reihenfolge beibehalten und doppelte Elemente entfernen müssen, können Sie LinkedHashSet verwenden.

import java.util.LinkedHashSet;
import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        LinkedHashSet<Integer> set = new LinkedHashSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

3. Verwenden Sie TreeSet, um Duplikate zu entfernen.
TreeSet ist eine geordnete Menge, die die Elemente standardmäßig sortiert. Mit der Deduplizierungsfunktion von TreeSet können Sie Elemente im Array zum TreeSet hinzufügen und das TreeSet dann in ein Array konvertieren, um eine Deduplizierung zu erreichen.

import java.util.TreeSet;
import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        TreeSet<Integer> set = new TreeSet<>();
        for(int i=0;i<array.length;i++){
            set.add(array[i]);
        }
        int[] result = new int[set.size()];
        int index=0;
        for(Integer num:set){
            result[index++] = num;
        }
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

4. Verwenden Sie die Stream-API, um Duplikate zu entfernen.
Die Stream-API ist eine neue API, die in Java 8 eingeführt wurde und eine Möglichkeit zum Streamen von Vorgängen bietet. In Kombination mit der eindeutigen Methode von Stream können Sie doppelte Arrays problemlos entfernen.

import java.util.Arrays;
import java.util.stream.IntStream;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        int[] result = IntStream.of(array).distinct().toArray();
        return result;
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

5. Verwenden Sie eine Doppelschleife, um Duplikate zu entfernen.
Die letzte Methode besteht darin, eine Doppelschleife zu verwenden, um das Array zu durchlaufen, um doppelte Elemente zu markieren und zu entfernen.

import java.util.Arrays;

public class ArrayDuplicateRemoval {
    public static int[] removeDuplicates(int[] array){
        int length = array.length;
        for(int i=0;i<length-1;i++){
            if(array[i]!=-1){
                for(int j=i+1;j<length;j++){
                    if(array[j]==array[i]){
                        array[j] = -1; // 标记为重复元素
                    }
                }
            }
        }
        int[] result = new int[length];
        int index = 0;
        for(int i=0;i<length;i++){
            if(array[i]!=-1){
                result[index++] = array[i];
            }
        }
        return Arrays.copyOf(result, index);
    }
    public static void main(String[] args){
        int[] array = {1, 2, 3, 4, 4, 5, 5, 6};
        int[] result = removeDuplicates(array);
        System.out.println(Arrays.toString(result));
    }
}

In der obigen Einführung haben wir fünf praktische Methoden der Java-Array-Deduplizierung ausführlich erläutert und spezifische Codebeispiele bereitgestellt. Abhängig von der tatsächlichen Situation und den Anforderungen können Sie eine geeignete Methode zur Lösung des Problems der Array-Deduplizierung auswählen. Ich hoffe, dieser Artikel wird Ihnen bei der tatsächlichen Entwicklung hilfreich sein!

Das obige ist der detaillierte Inhalt vonEine ausführliche Analyse von fünf praktischen Methoden zur Deduplizierung von Java-Arrays. 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