logo

Jak porovnat dva ArrayList v Javě

Existují následující způsoby, jak porovnat dva ArrayList v Javě:

  • Jáva rovná se() metoda
  • Jáva odebrat všechny() metoda
  • Jáva zachovat vše() metoda
  • Jáva ArrayList.contains() metoda
  • Jáva contentEquals() metoda
  • Jáva Proud rozhraní

Metoda Java equals().

Jáva rovná se() metoda Seznam rozhraní porovná zadaný objekt se seznamem z hlediska rovnosti. Přepíše rovná se() metoda Objekt třída.

Syntax

znak na řetězec v jazyce Java
 boolean equals(Object o) 

Tato metoda přijímá an objekt být porovnán pro rovnost se seznamem. Vrací se skutečný pokud je zadaný objekt roven seznamu, vrací else Nepravdivé .

Příklad

V následujícím příkladu jsme vytvořili dva ArrayList první seznam a druhý seznam . Porovnání obou seznamů pomocí rovná se() metoda, vrátí true. Přidali jsme další prvek v druhý seznam vytvořit rozdíl mezi firstList a secondList. Nyní, když provedeme srovnání, vrátí se Nepravdivé .

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

Výstup

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

Metoda Java removeAll() (nalezení chybějícího prvku)

Jáva odebrat všechny() metoda ArrayList třída se používá k odstranění všech prvků ze seznamu, které jsou obsaženy v zadané kolekci. Přepíše odebrat všechny() metoda Abstraktní kolekce třída.

Syntax

 public boolean removeAll(Collection c) 

Tato metoda přijímá Sbírka jako parametr obsahující prvky, které mají být z tohoto seznamu odstraněny. Vrací se skutečný pokud se tento seznam v důsledku hovoru změnil.

Příklad

V následujícím příkladu jsme vytvořili dva ArrayList první seznam a druhý seznam . The odebrat všechny() metoda odstraní všechny prvky z firstList, protože stejné prvky jsou také přítomné v secondList, kromě Papája . Tak, Papája je chybějící prvek v první seznam . Proto se vrací Papája . Metoda vrací an prázdný seznam [] pokud oba seznamy mají stejné prvky.

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

Výstup

 [Papaya] 

Podívejme se na další příklad metody removeAll(), která vrací prvky z firstList, které nejsou přítomny, je secondList.

Příklad

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

Výstup

 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 keepAll() (vrací společné prvky v obou seznamech)

Jáva zachovat vše() metoda ArrayList třída uchovává pouze prvky seznamu, které jsou také obsaženy v jiném seznamu. Přepíše zachovat vše() metoda AbstarctCollection třída.

0,04 jako zlomek

Syntax

 public boolean retainAll(Collection c) 

Tato metoda akceptuje a Sbírka jako parametr, který obsahuje prvky, které mají být v seznamu zachovány. Vrací se skutečný pokud se tento seznam v důsledku hovoru změnil.

Příklad

V tomto příkladu jsme vytvořili dva ArrayList první seznam a druhý seznam pomocí asList() metoda Pole třída. Metoda asList() vrací zobrazení seznamu zadaného pole.

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

Výstup

 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().

Jáva ArrayList.contains() metoda se používá pro porovnání dvou prvků různých ArrayList. Jáva ArrayList.contains() metoda přepíše obsahuje() metoda Abstraktní kolekce třída.

Syntax

 public boolean contains(Object o) 

Tato metoda analyzuje prvek, jehož přítomnost v seznamu se má zkontrolovat. Vrací se skutečný pokud se prvek shoduje, vrací else Nepravdivé .

Příklad

V tomto příkladu jsme vytvořili dva ArrayList první seznam a druhý seznam z Tětiva typ. Porovnali jsme tyto ArrayList pomocí obsahuje() metoda. Pokud se prvky firstList shodují s prvky secondList, vrátí se Ano a uloží tuto hodnotu do třetí seznam . Podobně, pokud se prvek neshoduje, vrátí 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); } } 

Výstup

 [Yes, No, No] 

Metoda Java contentEquals().

Jáva contentEquals() metoda porovnává Tětiva s StringBuffer a vrátí a booleovský hodnota. Patří k Tětiva třída.

Syntax

 public boolean contentEquals(StringBuffer sb) 

Tato metoda přijímá StringBuffer jako parametr pro porovnání s řetězcem String. Vrací se skutečný pokud řetězec představuje stejnou sekvenci znaků jako zadaný řetězec StringBuffer, vrátí hodnotu else Nepravdivé .

Příklad

V tomto příkladu jsme vytvořili dva ArrayList první seznam a druhý seznam z Tětiva typ. Vytvořili jsme statickou metodu porovnat seznam() který analyzuje dva ArrayList ls1 a ls2 jako argument a vrátí a booleovský hodnota. Metoda převede seznam na Tětiva . The contentEquals() metoda porovnává řetězec se zadaným StringBuffer.

Přidali jsme další prvek do secondList, abychom vytvořili rozdíl mezi oběma seznamy a znovu zavolali porovnat seznam() metoda, která vrací Nepravdivé .

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

Výstup

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

Rozhraní Java Stream

Jáva Proud je rozhraní. Patří k java.util balík. Poskytuje a filtr() metoda filtrování prvků proudu na základě daných prvků. Je to an středně pokročilí proces.

Syntax

 Stream filter(Predicate predicate) 

Tato metoda přijímá Predikát (funkční rozhraní) jako argument a vrátí nový proud výsledných prvků.

bublinové řazení v Javě

metoda collect().

Další metoda je použita v následujícím příkladu sbírat() metoda Proud rozhraní.

Provádí operaci proměnlivé redukce na prvcích tohoto proudu pomocí kolektoru. Collector zapouzdřuje funkce používané jako argumenty ke shromažďování (Supplier, BiConsumer, BiConsumer). Umožňuje to opětovné použití inkasních strategií a složení inkasních operací. Je to a terminál úkon.

Syntax

 R collect(Collector collector) 

Metoda Collectors.toList().

The toList() je statická metoda Sběratelé třída. Patří k java.util.Stream.Collectors třída.

Syntax

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

Kde T je typ prvků. Vrací a Kolektor který shromažďuje všechny vstupní prvky do seznamu v pořadí (neuspořádaném) setkání.

Příklad

V následujícím příkladu jsme vytvořili dva ArrayList první seznam a druhý seznam typu String. The filtr() metoda vrací seznam společných prvků, které jsou přítomny v obou seznamech.

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

Výstup

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