Java Usporedite dvije liste

Sučelje popisa u Javi pruža metode za uspoređivanje dva popisa i pronalaženje zajedničkih i nestalih stavki s popisa.



Usporedite dva nerazvrstana popisa radi jednakosti

Ako želite provjeriti jesu li dva popisa jednaka, tj. Sadrže iste stavke i i pojavljuju se u istom indeksu, tada možemo koristiti:

import java.util.Arrays; import java.util.List; public class CompareTwoLists {
public static void main(String[] args) {
List listOne = Arrays.asList('a', 'b', 'c');
List listTwo = Arrays.asList('a', 'b', 'c');
List listThree = Arrays.asList('c', 'a', 'b');

boolean isEqual = listOne.equals(listTwo);
System.out.println(isEqual);

isEqual = listOne.equals(listThree);
System.out.println(isEqual);
} }

Izlaz:


true false

Kao što vidite equals() metoda uspoređuje stavke i njihovo mjesto na popisu.

Povezano:




Usporedite dva poredana popisa

Sadrže li dva popisa iste stavke?

Da bismo usporedili dva popisa radi jednakosti samo u pogledu predmeta, bez obzira na njihovo mjesto, trebamo upotrijebiti sort() metoda iz Collections() razred.

Na primjer:

import java.util.Arrays; import java.util.Collections; import java.util.List; public class CompareTwoLists {
public static void main(String[] args) {
List listOne = Arrays.asList('b', 'c', 'a');
List listTwo = Arrays.asList('a', 'c', 'b');
List 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);
} }

Izlaz:


true true

Usporedite dva popisa, pronađite razlike

The List sučelje također nudi metode za pronalaženje razlika između dva popisa.

The removeAll() metoda uspoređuje dva popisa i uklanja sve uobičajene stavke. Preostale su dodatne ili nedostajuće stavke.

Na primjer, kada uspoređujemo dva popisa, listOne i listTwo i želimo saznati koji predmeti nedostaju u listTwo koristimo:

import java.util.ArrayList; import java.util.Arrays; public class CompareTwoArrayLists {
public static void main(String[] args) {
ArrayList listOne = new ArrayList(Arrays.asList(1, 2, 3, 4, 5));

ArrayList listTwo = new ArrayList(Arrays.asList(1, 2, 4, 5, 6, 7));

listOne.removeAll(listTwo);

System.out.println('Missing items from listTwo ' + listOne);
} }

Izlaz:


Missing items from listTwo [3]

Isto tako, ako smo koristili:

listTwo.removeAll(listOne); System.out.println('Missing items from listOne ' + listTwo);

Dobili bismo:

Missing items from listOne [6, 7]

Usporedite dva popisa, pronađite uobičajene stavke

The retainAll() metoda zadržava samo stavke koje su česte na oba popisa. Na primjer:

public class CompareTwoArrayLists {
public static void main(String[] args) {
ArrayList listOne = new ArrayList(Arrays.asList(1, 2, 3, 4, 5));

ArrayList listTwo = new ArrayList(Arrays.asList(1, 2, 4, 5, 6, 7));

listOne.retainAll(listTwo);

System.out.println('Common items in both lists ' + listOne);
} }

Izlaz:


Common items in both lists [1, 2, 4, 5]