Sučelje popisa u Javi pruža metode za uspoređivanje dva popisa i pronalaženje zajedničkih i nestalih stavki s popisa.
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:
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
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]
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]