logo

Cum se compară două ArrayList în Java

Există următoarele moduri de a compara două ArrayList în Java:

  • Java este egal() metodă
  • Java inlătură tot() metodă
  • Java retainAll() metodă
  • Java ArrayList.contains() metodă
  • Java contentEquals() metodă
  • Java Curent interfata

Metoda Java equals().

Java este egal() Metodă de Listă interfața compară obiectul specificat cu lista pentru egalitate. Ea trece peste este egal() Metodă de Obiect clasă.

Sintaxă

ce inseamna xd
 boolean equals(Object o) 

Această metodă acceptă un obiect pentru a fi comparat pentru egalitate cu lista. Se întoarce Adevărat dacă obiectul specificat este egal cu lista, altfel revine fals .

Exemplu

În exemplul următor, am creat două ArrayList firstList și secondList . Comparând ambele liste utilizând este egal() metoda, returnează adevărat. Am adăugat un alt element în secondList pentru a crea o diferență între firstList și secondList. Acum, dacă facem comparație, aceasta revine fals .

 import java.util.*; public class ComapreArraylistExample1 { public static void main(String args[]) { //first array list ArrayList firstList=new ArrayList(); //adds elements to the arraylist firstList.add('Apple'); firstList.add('Pears'); firstList.add('Guava'); firstList.add('Mango'); System.out.println(firstList); //second array list List secondList=new ArrayList(); //adds elements to the arraylist secondList.add('Apple'); secondList.add('Pears'); secondList.add('Guava'); secondList.add('Mango'); System.out.println(secondList); //comparing both lists boolean boolval = firstList.equals(secondList); //returns true because lists are equal System.out.println(boolval); //adding another element in the second list secondList.add('Papaya'); //again comparing both lists boolean bool = firstList.equals(secondList); //returns false because lists are not equal System.out.println(bool); } } 

Ieșire

 [Apple, Pears, Guava, Mango] [Apple, Pears, Guava, Mango] true false 

Metoda Java removeAll() (găsirea elementului lipsă)

Java inlătură tot() Metodă de ArrayList clasa este folosită pentru a elimina toate elementele din listă care sunt conținute în colecția specificată. Ea trece peste inlătură tot() Metodă de Colecția de abstracte clasă.

Sintaxă

 public boolean removeAll(Collection c) 

Această metodă acceptă Colectie ca parametru care conține elemente care trebuie eliminate din această listă. Se întoarce Adevărat dacă această listă s-a schimbat ca urmare a apelului.

Exemplu

În exemplul următor, am creat două ArrayList firstList și secondList . The inlătură tot() metoda elimină toate elementele primei liste, deoarece aceleași elemente sunt prezente și în a doua listă, cu excepția Papaya . Asa de, Papaya este elementul lipsă din firstList . Prin urmare, se întoarce Papaya . Metoda returnează un lista goala [] dacă ambele liste au aceleași elemente.

 import java.util.*; public class ComapreArraylistExample2 { public static void main(String args[]) { //first arraylist ArrayList firstList=new ArrayList(); //adds elements to the array list firstList.add('Apple'); firstList.add('Pears'); firstList.add('Guava'); firstList.add('Peach'); //second array list ArrayList secondList=new ArrayList(); //adds elements to the array list secondList.add('Apple'); secondList.add('Pears'); secondList.add('Papaya'); secondList.add('Peach'); //removes all elements from the first list //returns empty list if all the elements of first list match with elements of second list secondList.removeAll(firstList); //prints the element of second list which does not match with the element of the first list System.out.println(secondList); } } 

Ieșire

 [Papaya] 

Să vedem un alt exemplu de metodă removeAll() care returnează elementele din firstList care nu sunt prezente este secondList.

Exemplu

 import java.util.*; public class ComapreArraylistExample3 { public static void main(String args[]) { //first array list ArrayList firstList=new ArrayList(Arrays.asList(12, 4, 67, 90, 34)); System.out.println('First array list: '); System.out.println(firstList); //second array list List secondList=new ArrayList(Arrays.asList(12, 4, 67, 0, 34)); System.out.println('Second array list: '); System.out.println(secondList); //returns the common elements in both list firstList.removeAll(secondList); System.out.println('Un-common element of the first list: '); System.out.println(firstList); } } 

Ieșire

 First array list: [12, 4, 67, 90, 34] Second array list: [12, 4, 67, 0, 34] Un-common element of the first list: [90] 

Metoda Java retainAll() (returnează elemente comune în ambele liste)

Java retainAll() Metodă de ArrayList clasa reține doar elementele listei care sunt conținute și în altă listă. Ea trece peste retainAll() Metodă de AbstarctColection clasă.

căutarea contradictorie

Sintaxă

 public boolean retainAll(Collection c) 

Această metodă acceptă a Colectie ca parametru care conține elemente de reținut în listă. Se întoarce Adevărat dacă această listă s-a schimbat ca urmare a apelului.

Exemplu

În acest exemplu, am creat două ArrayList firstList și secondList prin folosirea asList() metoda de Matrice clasă. Metoda asList() returnează o vizualizare listă a matricei specificate.

 import java.util.*; public class ComapreArraylistExample4 { public static void main(String args[]) { //first arraylist ArrayList firstList=new ArrayList(Arrays.asList('M', 'W', 'J', 'K', 'T')); System.out.println('First arraylist: '); System.out.println(firstList); //second arraylist List secondList=new ArrayList(Arrays.asList('M', 'W', 'E', 'K', 'T')); System.out.println('Second arraylist: '); System.out.println(secondList); //returns the common elements in both list secondList.retainAll(firstList); System.out.println('Common elements in both list: '); System.out.println(secondList); } } 

Ieșire

 First arraylist: [M, W, J, K, T] Second arraylist: [M, W, E, K, T] Common elements in both list: [M, W, K, T] 

Metoda Java ArrayList.contains().

Java ArrayList.contains() metoda este utilizată pentru a compara două elemente ale ArrayList diferite. Java ArrayList.contains() metoda anulează conține() Metodă de AbstrarctColelection clasă.

Sintaxă

 public boolean contains(Object o) 

Această metodă analizează un element a cărui prezență în listă urmează să fie verificată. Se întoarce Adevărat dacă elementul este potrivit, altfel revine fals .

Exemplu

În acest exemplu, am creat două ArrayList firstList și secondList de Şir tip. Am comparat aceste ArrayList folosind conține() metodă. Dacă elementele din firstList se potrivesc cu elementele din secondList, se întoarce da și stochează această valoare în a treiaLista . În mod similar, dacă elementul nu se potrivește, se întoarce Nu .

 import java.util.ArrayList; import java.util.Arrays; public class ComapreArraylistExample5 { public static void main(String [] args) { //first arraylist ArrayList firstList= new ArrayList(Arrays.asList('Good', 'Morning', 'Students')); //second arraylist ArrayList secondList= new ArrayList(Arrays.asList('Good', 'Night', 'frineds')); //storing the comparison output in thirdList ArrayList thirdList= new ArrayList(); //iterator using for-each loop for(String tempList : firstList) //tempList is a variable thirdList.add(secondList.contains(tempList) ? 'Yes' : 'No'); System.out.println(thirdList); } } 

Ieșire

 [Yes, No, No] 

Metoda Java contentEquals().

Java contentEquals() metoda compară Şir cu StringBuffer și returnează a boolean valoare. Apartine Şir clasă.

Sintaxă

 public boolean contentEquals(StringBuffer sb) 

Această metodă acceptă StringBuffer ca parametru de comparat cu String. Se întoarce Adevărat dacă String-ul reprezintă aceeași secvență de caractere ca și StringBuffer-ul specificat, altfel revine fals .

Exemplu

În acest exemplu, am creat două ArrayList firstList și secondList de Şir tip. Am creat o metodă statică compareList() care analizează două ArrayList ls1 și ls2 ca argument și returnează a boolean valoare. Metoda convertește o listă în Şir . The contentEquals() metoda compară String-ul cu StringBuffer-ul specificat.

Am adăugat un alt element în secondList pentru a crea diferența între ambele liste și a apela din nou compareList() metoda, care revine fals .

 import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ComapreArraylistExample6 { //defining method public static boolean compareList(ArrayList ls1, ArrayList ls2) { //converts List into String and checks string are equal or not return ls1.toString().contentEquals(ls2.toString())?true:false; } public static void main(String[] args) { ArrayList firstList = new ArrayList(Arrays.asList('Java', 'Python', 'Ruby', 'Go')); ArrayList secondList = new ArrayList(Arrays.asList('Java', 'Python', 'Ruby', 'Go')); System.out.println('When Lists are same: '+compareList(firstList, secondList)); //adding another element to the secondList secondList.add('C++'); //output after adding different element System.out.println('When Lists are not same: '+compareList(firstList, secondList)); } } 

Ieșire

 When Lists are same: true When Lists are not same: false 

Interfață Java Stream

Java Curent este o interfață. Ii apartine java.util pachet. Acesta oferă o filtru() metoda de filtrare a elementelor fluxului pe baza elementelor date. Este un intermediar proces.

Sintaxă

 Stream filter(Predicate predicate) 

Această metodă acceptă Predicat (interfață funcțională) ca argument și returnează un nou flux de elemente rezultate.

algoritmi de sortare prin inserare

metoda collect().

O altă metodă este folosită în exemplul următor este colectarea() Metodă de Curent interfata.

Efectuează o operație de reducere mutabilă asupra elementelor acestui flux folosind un colector. Colectorul încapsulează funcțiile utilizate ca argumente pentru a colecta (Furnizor, BiConsumer, BiConsumer). Acesta permite reutilizarea a strategiilor de colectare și alcătuirea operațiunilor de colectare. Este un Terminal Operațiune.

Sintaxă

 R collect(Collector collector) 

Metoda Collectors.toList().

The a lista() este o metodă statică de Colectionari clasă. Ii apartine java.util.Stream.Collectors clasă.

Sintaxă

 public static Collector<t, ?, list> toList() </t,>

Unde T este tipul de elemente. Se întoarce a Colector care colectează toate elementele de intrare într-o Listă, într-o ordine de întâlnire (neordonată).

Exemplu

În exemplul următor, am creat două ArrayList firstList și secondList de tip String. The filtru() metoda returnează o listă de elemente comune care sunt prezente în ambele liste.

 import java.util.*; public class CompareArrayListExample7 { public static void main(String[] args) { ArrayList firstList = new ArrayList(Arrays.asList(&apos;Java&apos;, &apos;Python&apos;, &apos;Ruby&apos;, &apos;Go&apos;)); System.out.println(&apos;First List: &apos;+firstList); ArrayList secondList = new ArrayList(Arrays.asList(&apos;Java&apos;, &apos;Python&apos;, &apos;Ruby&apos;, &apos;Go&apos;, &apos;Perl&apos;)); System.out.println(&apos;Second List: &apos;+secondList); // Finds common elements System.out.print(&apos;Common elements: &apos; +firstList.stream().filter(secondList::contains).collect(Collectors.toList())); } } 

Ieșire

 First List: [Java, Python, Ruby, Go] Second List: [Java, Python, Ruby, Go, Perl] Common elements: [Java, Python, Ruby, Go]