อินเทอร์เฟซรายการใน Java มีวิธีเปรียบเทียบสองรายการและค้นหารายการทั่วไปและรายการที่ขาดหายไปจากรายการ
เปรียบเทียบรายการที่ไม่เรียงลำดับสองรายการเพื่อความเท่าเทียมกัน
หากคุณต้องการตรวจสอบว่าสองรายการเท่ากัน นั่นคือ มีรายการเดียวกันและปรากฏในดัชนีเดียวกัน เราสามารถใช้:
import java.util.Arrays;
import java.util.List;
public class CompareTwoLists {
public static void main(String[] args) {
List<String> listOne = Arrays.asList("a", "b", "c");
List<String> listTwo = Arrays.asList("a", "b", "c");
List<String> listThree = Arrays.asList("c", "a", "b");
boolean isEqual = listOne.equals(listTwo);
System.out.println(isEqual);
isEqual = listOne.equals(listThree);
System.out.println(isEqual);
}
}
เอาท์พุต:
true
false
อย่างที่คุณเห็น equals()
วิธีเปรียบเทียบรายการและตำแหน่งในรายการ
ที่เกี่ยวข้อง:
- วิธีการวนรอบ ArrayList ใน Java
- วิธีลบรายการที่ซ้ำกันออกจากรายการ
- วิธีแปลงรายการเป็นอาร์เรย์ใน Java
เปรียบเทียบรายการที่จัดเรียงสองรายการ
สองรายการมีรายการเดียวกันหรือไม่
ในการเปรียบเทียบสองรายการเพื่อความเท่าเทียมกันในแง่ของรายการโดยไม่คำนึงถึงตำแหน่ง เราจำเป็นต้องใช้ sort()
วิธีการจาก Collections()
ชั้นเรียน
ตัวอย่างเช่น:
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class CompareTwoLists {
public static void main(String[] args) {
List<String> listOne = Arrays.asList("b", "c", "a");
List<String> listTwo = Arrays.asList("a", "c", "b");
List<String> listThree = Arrays.asList("c", "a", "b");
Collections.sort(listOne);
Collections.sort(listTwo);
Collections.sort(listThree);
boolean isEqual = listOne.equals(listTwo);
System.out.println(isEqual);
isEqual = listOne.equals(listThree);
System.out.println(isEqual);
}
}
เอาท์พุต:
true
true
เปรียบเทียบสองรายการ ค้นหาความแตกต่าง
List
อินเทอร์เฟซยังมีวิธีการค้นหาความแตกต่างระหว่างสองรายการ
removeAll()
วิธีเปรียบเทียบสองรายการและลบรายการทั่วไปทั้งหมด เหลือแต่ของเพิ่มหรือขาด
ตัวอย่างเช่น เมื่อเราเปรียบเทียบสองรายการ listOne
และ listTwo
และเราต้องการค้นหาว่ารายการใดบ้างที่ขาดหายไปจาก listTwo
เราใช้:
import java.util.ArrayList;
import java.util.Arrays;
public class CompareTwoArrayLists {
public static void main(String[] args) {
ArrayList<Integer> listOne = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
ArrayList<Integer> listTwo = new ArrayList<>(Arrays.asList(1, 2, 4, 5, 6, 7));
listOne.removeAll(listTwo);
System.out.println("Missing items from listTwo " + listOne);
}
}
เอาท์พุต:
Missing items from listTwo [3]
ในทำนองเดียวกัน หากเราใช้:
listTwo.removeAll(listOne);
System.out.println("Missing items from listOne " + listTwo);
เราจะได้:
Missing items from listOne [6, 7]
เปรียบเทียบสองรายการ ค้นหารายการทั่วไป
retainAll()
วิธีเก็บเฉพาะรายการที่เหมือนกันในทั้งสองรายการ ตัวอย่างเช่น:
public class CompareTwoArrayLists {
public static void main(String[] args) {
ArrayList<Integer> listOne = new ArrayList<>(Arrays.asList(1, 2, 3, 4, 5));
ArrayList<Integer> listTwo = new ArrayList<>(Arrays.asList(1, 2, 4, 5, 6, 7));
listOne.retainAll(listTwo);
System.out.println("Common items in both lists " + listOne);
}
}
เอาท์พุต:
Common items in both lists [1, 2, 4, 5]