Sådan fjerner du dubletter fra ArrayList i java
Lad os lære, hvordan man fjerner dubletter fra arraylist i java?
Sådan fjerner du dubletter fra ArrayList i java
Her er opgaven at fjerne dubletter i Arraylist. I nedenstående java-program får du først ArrayList med duplikerede heltalsværdier. Udskriv nu ArrayList med dublerede heltalsværdier på konsollen.
Opret endnu en ArrayList 'alNew'. Send den første arraylist som et argument til removeDuplicate()-metoden. I denne metode skal du krydse første arrayliste-elementer og gemme den første ankomst af hvert element i den anden arraylist ved hjælp af contains()-metoden.
Efter gennemgang af arraylisteelementer ved brug af foreach loop indeholder anden arraylist elementer med dubletter eller gentagne elementer fjernet.
import java.util.ArrayList; import java.util.Arrays; public class DuplicatesFromArraylist { public static <T> ArrayList<T> removeDuplicate(ArrayList<T> al) { ArrayList<T> alNew = new ArrayList<T>(); for(T element : al) { // if element is present in alNew then add it if(!alNew.contains(element)) { alNew.add(element); } } // return alNew return alNew; } public static void main(String[] args) { ArrayList<Integer> al = new ArrayList<>(Arrays.asList(2, 2, 4, 4, 6, 6, 8, 8, 1, 3, 5, 7, 9)); System.out.println("Before removing duplicates from ArrayList: " + al); ArrayList<Integer> alNew = removeDuplicate(al); // printing ArrayList with duplicates System.out.println("After removing duplicates from ArrayList: " + alNew); } }
Output:
Før du fjerner dubletter fra ArrayList:[2, 2, 4, 4, 6, 6, 8, 8, 1, 3, 5, 7, 9]
Efter fjernelse af dubletter fra ArrayList:[2, 4, 6, 8, 1, 3, 5, 7, 9]
Fjern dubletter fra array java 8
For at fjerne dubletter fra array i java 8 skal du bruge distinct() metoden. distinct()-metoden returnerer en strøm, der består af de distinkte elementer (ifølge Object.equals(Object)) af en given strøm.
I nedenstående java-program får du først ArrayList med duplikerede værdier. Brug denne arraylist til at oprette en ny liste. Bruger nu Stream().distinct()-metoden til at returnere distinkt objektstrøm. Konverter endelig objektstrøm til List. Lad os se et eksempel.
import java.util.Arrays; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; public class RemoveDuplicatesJava8 { public static void main(String[] args) { List li1 = new ArrayList<>(Arrays.asList(2, 2, 4, 4, 6, 6, 8, 8, 1, 3, 5, 7, 9)); System.out.println("Before removing duplicate elements: " + li1); // create new list from elements of original list List li2 = li1.stream().distinct().collect(Collectors.toList()); // printing ArrayList with duplicates removed System.out.println("After removing duplicate elements: " + li2); } }
Output:
ArrayList med dubletter:[2, 2, 4, 4, 6, 6, 8, 8, 1, 3, 5, 7, 9]
ArrayList med dubletter fjernet:[2, 4, 6, 8, 1, 3, 5, 7, 9]
Lad os på samme måde fjerne dubletter fra ArrayList ved hjælp af LinkedHashSet. Her skal vi først konvertere ArrayList til Set. Fordi et sæt ikke tillader dubletter.
I nedenstående java-program får du først ArrayList med duplikerede værdier. Opret nu LinkedHashSet fra givet ArrayList. Her vil LinkedHashSet fjerne alle duplikerede værdier.
I næste trin konverterer LinkedHashSet tilbage til ArrayList. Udskriv endelig den anden ArrayList på konsollen med duplikerede værdier fjernet.
import java.util.ArrayList; import java.util.Arrays; import java.util.LinkedHashSet; import java.util.Set; public class UsingLinkedHashSet { public static <T>ArrayList<T> removeDuplicate(ArrayList<T> al) { Set<T> set = new LinkedHashSet<>(); set.addAll(al); // clear list al.clear(); al.addAll(set); return al; } public static void main(String[] args) { // ArrayList with duplicate values ArrayList<Integer> al1 = new ArrayList<>(Arrays.asList(2, 2, 4, 4, 6, 6, 8, 8, 1, 3, 5, 7, 9)); System.out.println("ArrayList with duplicate values: " + al1); ArrayList<Integer> al2 = removeDuplicate(al1); // printing ArrayList with duplicates removed System.out.println("ArrayList with duplicate values removed: " + al2); } }
Output:
ArrayList med duplikerede værdier:[2, 2, 4, 4, 6, 6, 8, 8, 1, 3, 5, 7, 9]
ArrayList med duplikerede værdier fjernet:[2, 4, 6, 8, 1, 3, 5, 7, 9]