logo

Как да сравните два ArrayList в Java

Има следните начини за сравняване на два ArrayList в Java:

  • Java равно на() метод
  • Java премахнете всички() метод
  • Java retainAll() метод
  • Java ArrayList.contains() метод
  • Java contentEquals() метод
  • Java Поток интерфейс

Метод Java equals().

Java равно на() метод на списък интерфейсът сравнява посочения обект със списъка за равенство. Той отменя равно на() метод на Обект клас.

Синтаксис

многоредов коментар powershell
 boolean equals(Object o) 

Този метод приема an обект да бъдат сравнени за равенство със списъка. Връща се вярно ако посоченият обект е равен на списъка, else се връща невярно .

Пример

В следващия пример създадохме два ArrayList firstList и secondList . Сравняване на двата списъка с помощта на равно на() метод, той връща true. Добавихме още един елемент в secondList за да създадете разлика между firstList и secondList. Сега, ако направим сравнение, то се връща невярно .

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

Изход

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

Метод Java removeAll() (намиране на липсващия елемент)

Java премахнете всички() метод на ArrayList клас се използва за премахване на всички елементи от списъка, които се съдържат в указаната колекция. Той отменя премахнете всички() метод на AbstractCollection клас.

Синтаксис

 public boolean removeAll(Collection c) 

Този метод приема колекция като параметър, съдържащ елементи, които трябва да бъдат премахнати от този списък. Връща се вярно ако този списък се промени в резултат на повикването.

Пример

В следващия пример създадохме два ArrayList firstList и secondList . The премахнете всички() премахва всички елементи на firstList, защото същите елементи присъстват и във secondList, с изключение на папая . Така, папая е липсващият елемент в firstList . Следователно се връща папая . Методът връща an празен списък [] ако и двата списъка имат едни и същи елементи.

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

Изход

 [Papaya] 

Нека видим друг пример за метод removeAll(), който връща елементите от firstList, които не присъстват, е secondList.

Пример

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

Изход

 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 метод retainAll() (връща общи елементи и в двата списъка)

Java retainAll() метод на ArrayList класът запазва само елементите от списъка, които се съдържат и в друг списък. Той отменя retainAll() метод на AbstarctCollection клас.

обяснете независимостта на данните

Синтаксис

 public boolean retainAll(Collection c) 

Този метод приема a колекция като параметър, който съдържа елементи, които трябва да бъдат запазени в списъка. Връща се вярно ако този списък се промени в резултат на повикването.

Пример

В този пример създадохме два ArrayList firstList и secondList с помощта на asList() метод на Масиви клас. Методът asList() връща списъчен изглед на посочения масив.

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

Изход

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

Java ArrayList.contains() метод

Java ArrayList.contains() методът се използва за сравняване на два елемента от различен ArrayList. Java ArrayList.contains() метод отменя съдържа() метод на AbstractCollection клас.

Синтаксис

 public boolean contains(Object o) 

Този метод анализира елемент, чието присъствие в списъка трябва да бъде проверено. Връща се вярно ако елементът е съвпаднал, else се връща невярно .

Пример

В този пример създадохме два ArrayList firstList и secondList на низ Тип. Ние сравнихме тези ArrayList с помощта на съдържа() метод. Ако елементите на firstList съвпадат с елементите на secondList, той се връща да и съхранява тази стойност в трети списък . По същия начин, ако елементът не съвпада, той се връща Не .

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

Изход

 [Yes, No, No] 

Java contentEquals() метод

Java contentEquals() методът сравнява низ с StringBuffer и връща a булево стойност. Принадлежи на низ клас.

Синтаксис

 public boolean contentEquals(StringBuffer sb) 

Този метод приема StringBuffer като параметър за сравнение с String. Връща се вярно ако String представлява същата последователност от знаци като посочения StringBuffer, else се връща невярно .

Пример

В този пример създадохме два ArrayList firstList и secondList на низ Тип. Създадохме статичен метод compareList() който анализира два ArrayList ls1 и ls2 като аргумент и връща a булево стойност. Методът преобразува списък в низ . The contentEquals() методът сравнява String с посочения StringBuffer.

Добавихме друг елемент във secondList, за да създадем разликата между двата списъка и отново да извикаме compareList() метод, който връща невярно .

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

Изход

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

Java Stream интерфейс

Java Поток е интерфейс. Принадлежи на java.util пакет. Той осигурява a филтър() метод за филтриране на елементи на поток въз основа на дадени елементи. Това е междинен процес.

Синтаксис

 Stream filter(Predicate predicate) 

Този метод приема Предикат (функционален интерфейс) като аргумент и връща нов поток от резултантни елементи.

mergesort java

метод collect().

Друг метод, използван в следващия пример, е събирам () метод на Поток интерфейс.

Той изпълнява операция за променлива редукция върху елементите на този поток, използвайки колектор. Колекторът капсулира функциите, използвани като аргументи за събиране (Supplier, BiConsumer, BiConsumer). Позволява да се повторно използване на стратегии за събиране и състав на операции по събиране. Това е терминал операция.

Синтаксис

 R collect(Collector collector) 

Метод Collectors.toList().

The toList() е статичен метод на Колекционери клас. Принадлежи на java.util.Stream.Collectors клас.

Синтаксис

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

Където T е типът елементи. Връща a Колекционер който събира всички входни елементи в списък в ред на среща (неподреден).

Пример

В следващия пример създадохме два ArrayList firstList и secondList от тип String. The филтър() метод връща списък с общи елементи, които присъстват и в двата списъка.

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

Изход

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