logo

Kako usporediti dva ArrayList-a u Javi

Postoje sljedeći načini za usporedbu dva ArrayList-a u Javi:

  • Java jednako() metoda
  • Java ukloniti sve() metoda
  • Java zadržatiSve() metoda
  • Java ArrayList.contains() metoda
  • Java contentEquals() metoda
  • Java Stream sučelje

Java equals() metoda

Java jednako() metoda od Popis sučelje uspoređuje navedeni objekt s popisom radi jednakosti. Nadjačava jednako() metoda od Objekt razreda.

Sintaksa

sta znaci xd
 boolean equals(Object o) 

Ova metoda prihvaća an objekt usporediti radi jednakosti s popisom. Vraća se pravi ako je navedeni objekt jednak popisu, else vraća lažno .

Primjer

U sljedećem primjeru stvorili smo dvije ArrayList prviList i secondList . Uspoređujući oba popisa pomoću jednako() metoda, vraća true. Dodali smo još jedan element u secondList za stvaranje razlike između firstList i secondList. Sada, ako izvršimo usporedbu, vraća se lažno .

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

Izlaz

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

Java removeAll() metoda (pronalaženje elementa koji nedostaje)

Java ukloniti sve() metoda od ArrayList klasa se koristi za uklanjanje svih elemenata s popisa koji su sadržani u navedenoj kolekciji. Nadjačava ukloniti sve() metoda od AbstractCollection razreda.

Sintaksa

 public boolean removeAll(Collection c) 

Ova metoda prihvaća Kolekcija kao parametar koji sadrži elemente koji se uklanjaju s ovog popisa. Vraća se pravi ako se ovaj popis promijenio kao rezultat poziva.

Primjer

U sljedećem primjeru stvorili smo dvije ArrayList prviList i secondList . The ukloniti sve() metoda uklanja sve elemente firstList jer su isti elementi također prisutni u secondList, osim Papaja . Tako, Papaja je element koji nedostaje u prviList . Dakle, vraća se Papaja . Metoda vraća an prazan popis [] ako obje liste imaju iste 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); } } 

Izlaz

 [Papaya] 

Pogledajmo drugi primjer metode removeAll() koja vraća elemente iz firstList koji nisu prisutni je secondList.

Primjer

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

Izlaz

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

Java metoda retainAll() (vraća zajedničke elemente na oba popisa)

Java zadržatiSve() metoda od ArrayList klasa zadržava samo elemente popisa koji su također sadržani u drugom popisu. Nadjačava zadržatiSve() metoda od AbstarctCollection razreda.

kontradiktorna pretraga

Sintaksa

 public boolean retainAll(Collection c) 

Ova metoda prihvaća a Kolekcija kao parametar koji sadrži elemente koje treba zadržati na listi. Vraća se pravi ako se ovaj popis promijenio kao rezultat poziva.

Primjer

U ovom smo primjeru stvorili dvije ArrayList prviList i secondList korištenjem asList() metoda Nizovi razreda. Metoda asList() vraća prikaz popisa navedenog polja.

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

Izlaz

 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 se koristi za usporedbu dva elementa različitih ArrayList. Java ArrayList.contains() metoda nadjačava sadrži () metoda od AbstrarctCollection razreda.

Sintaksa

 public boolean contains(Object o) 

Ova metoda analizira element čiju prisutnost na popisu treba provjeriti. Vraća se pravi ako se element podudara, else vraća lažno .

Primjer

U ovom smo primjeru stvorili dvije ArrayList prviList i secondList od Niz tip. Usporedili smo ove ArrayList koristeći sadrži () metoda. Ako se elementi firstList podudaraju s elementima secondList, vraća se Da i pohranjuje ovu vrijednost u trećiPopis . Slično, ako se element ne podudara, vraća se Ne .

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

Izlaz

 [Yes, No, No] 

Java contentEquals() metoda

Java contentEquals() metoda uspoređuje Niz s StringBuffer i vraća a Booleov vrijednost. Pripada Niz razreda.

Sintaksa

 public boolean contentEquals(StringBuffer sb) 

Ova metoda prihvaća StringBuffer kao parametar za usporedbu sa Stringom. Vraća se pravi ako String predstavlja isti niz znakova kao navedeni StringBuffer, else vraća lažno .

Primjer

U ovom smo primjeru stvorili dvije ArrayList prviList i secondList od Niz tip. Stvorili smo statičku metodu CompareList() koji analizira dvije ArrayList ls1 i ls2 kao argument i vraća a Booleov vrijednost. Metoda pretvara popis u Niz . The contentEquals() metoda uspoređuje String s navedenim StringBufferom.

Dodali smo još jedan element u secondList kako bismo stvorili razliku između oba popisa i ponovno pozvali CompareList() metoda, koja vraća lažno .

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

Izlaz

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

Java Stream sučelje

Java Stream je sučelje. Pripada java.util paket. Pruža a filtar() metoda za filtriranje elemenata toka na temelju zadanih elemenata. To je srednji postupak.

Sintaksa

 Stream filter(Predicate predicate) 

Ova metoda prihvaća Predikat (funkcionalno sučelje) kao argument i vraća novi tok rezultirajućih elemenata.

ispitivanje i vrste ispitivanja

collect() metoda

Druga metoda koja se koristi u sljedećem primjeru je prikupiti() metoda od Stream sučelje.

Izvodi promjenjivu operaciju redukcije na elementima ovog toka pomoću kolektora. Sakupljač sažima funkcije koje se koriste kao argumenti za prikupljanje (Dobavljač, BiPotrošač, BiPotrošač). Omogućuje da se ponovno korištenje strategija naplate i sastav operacija naplate. To je terminal operacija.

Sintaksa

 R collect(Collector collector) 

Metoda Collectors.toList().

The izlistati() je statička metoda Kolekcionari razreda. Pripada java.util.Stream.Collectors razreda.

Sintaksa

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

Gdje T je vrsta elemenata. Vraća a Kolektor koji prikuplja sve ulazne elemente u popis, u (neuređenom) redoslijedu.

Primjer

U sljedećem primjeru stvorili smo dvije ArrayList prviList i secondList tipa String. The filtar() metoda vraća popis zajedničkih elemenata koji su prisutni u oba popisa.

 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())); } } 

Izlaz

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