logo

כיצד להשוות שני ArrayList ב-Java

ישנן דרכים הבאות להשוות בין שני ArrayList ב-Java:

  • Java שווים() שיטה
  • Java להסיר את כל() שיטה
  • Java retainAll() שיטה
  • Java ArrayList.contains() שיטה
  • Java contentEquals() שיטה
  • Java זרם מִמְשָׁק

שיטת Java equals()

Java שווים() שיטה של רשימה ממשק משווה את האובייקט שצוין עם הרשימה לצורך שוויון. זה עוקף את שווים() שיטה של לְהִתְנַגֵד מעמד.

תחביר

תקשורת אנלוגית
 boolean equals(Object o) 

שיטה זו מקבלת an לְהִתְנַגֵד להשוות לשוויון עם הרשימה. זה חוזר נָכוֹן אם האובייקט שצוין שווה לרשימה, else חוזר שֶׁקֶר .

דוגמא

בדוגמה הבאה, יצרנו שני ArrayList רשימה ראשונה ו רשימה שנייה . השוואה בין שתי הרשימות באמצעות שימוש שווים() השיטה, הוא מחזיר נכון. הוספנו אלמנט נוסף ב- רשימה שנייה כדי ליצור הבדל בין 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 להסיר את כל() שיטה של רשימת מערך class משמש להסרת כל האלמנטים מהרשימה הכלולים באוסף שצוין. זה עוקף את להסיר את כל() שיטה של אוסף מופשט מעמד.

תחביר

 public boolean removeAll(Collection c) 

שיטה זו מקבלת אוסף כפרמטר המכיל אלמנטים שיוסרו מרשימה זו. זה חוזר נָכוֹן אם רשימה זו השתנתה כתוצאה מהשיחה.

דוגמא

בדוגמה הבאה, יצרנו שני ArrayList רשימה ראשונה ו רשימה שנייה . ה להסיר את כל() השיטה מסירה את כל הרכיבים של ה-firstList מכיוון שאותם אלמנטים נמצאים גם ב-secondList, מלבד פפאיה . כך, פפאיה הוא האלמנט החסר ב- רשימה ראשונה . לפיכך, זה חוזר פפאיה . השיטה מחזירה 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() שיטה של רשימת מערך המחלקה שומרת רק את הרכיבים של הרשימה הכלולים גם ברשימה אחרת. זה עוקף את retainAll() שיטה של AbstarcCollection מעמד.

מספרים ראשוניים לתכנות ג'אווה

תחביר

 public boolean retainAll(Collection c) 

שיטה זו מקבלת א אוסף כפרמטר המכיל אלמנטים שיש לשמור ברשימה. זה חוזר נָכוֹן אם רשימה זו השתנתה כתוצאה מהשיחה.

דוגמא

בדוגמה זו, יצרנו שני ArrayList רשימה ראשונה ו רשימה שנייה על ידי שימוש ב- 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() השיטה עוקפת את מכיל() שיטה של אוסף אבסטרקטי מעמד.

תחביר

 public boolean contains(Object o) 

שיטה זו מנתחת אלמנט שיש לבדוק את נוכחותו ברשימה. זה חוזר נָכוֹן אם האלמנט מותאם, אחרת חוזר שֶׁקֶר .

דוגמא

בדוגמה זו, יצרנו שני ArrayList רשימה ראשונה ו רשימה שנייה שֶׁל חוּט סוּג. השווינו באמצעות 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 ומחזיר א בוליאני ערך. זה שייך ל חוּט מעמד.

תחביר

 public boolean contentEquals(StringBuffer sb) 

שיטה זו מקבלת את StringBuffer כפרמטר להשוואה מול המחרוזת. זה חוזר נָכוֹן אם המחרוזת מייצגת את אותו רצף של תווים כמו ה-StringBuffer שצוין, אחרת מחזירה שֶׁקֶר .

דוגמא

בדוגמה זו, יצרנו שני ArrayList רשימה ראשונה ו רשימה שנייה שֶׁל חוּט סוּג. יצרנו שיטה סטטית compareList() שמנתח שני ArrayList ls1 ו ls2 כטיעון ומחזיר א בוליאני ערך. השיטה ממירה רשימה ל חוּט . ה 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 חֲבִילָה. הוא מספק א לְסַנֵן() שיטה לסינון רכיבי זרם על בסיס אלמנטים נתונים. זה ביניים תהליך.

תחביר

 Stream filter(Predicate predicate) 

שיטה זו מקבלת לְבַסֵס (ממשק פונקציונלי) כארגומנט ומחזיר זרם חדש של אלמנטים שנוצרו.

מערכי bash

שיטת collect().

שיטה נוספת המשמשת בדוגמה הבאה היא לאסוף() שיטה של זרם מִמְשָׁק.

הוא מבצע פעולת הפחתה ניתנת לשינוי על רכיבי הזרם הזה באמצעות Collector. האספן מקפל את הפונקציות המשמשות כארגומנטים לאיסוף (ספק, BiConsumer, BiConsumer). זה מאפשר שימוש חוזר של אסטרטגיות הגבייה והרכב פעולות האיסוף. זה מָסוֹף מבצע.

תחביר

 R collect(Collector collector) 

שיטת Collectors.toList().

ה למנות() היא שיטה סטטית של אספנים מעמד. זה שייך ל java.util.Stream.Collectors מעמד.

תחביר

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

איפה ט הוא סוג האלמנטים. זה מחזיר א אַסְפָן אשר אוסף את כל רכיבי הקלט לרשימה, בסדר מפגש (לא מסודר).

דוגמא

בדוגמה הבאה, יצרנו שני ArrayList רשימה ראשונה ו רשימה שנייה מסוג מחרוזת. ה לְסַנֵן() השיטה מחזירה רשימה של אלמנטים משותפים אשר קיימים בשתי הרשימות.

 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]