Java bera saman tvo lista

Listaviðmótið í Java býður upp á aðferðir til að geta borið saman tvo lista og fundið algeng atriði sem vantar á listana.

Berðu saman tvo óflokkaða lista til jafnréttis

Ef þú vilt athuga hvort tveir listar séu jafnir, þ.e.a.s innihalda sömu hluti og birtast í sömu vísitölu, þá getum við notað:

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

Framleiðsla:

true false

Eins og sjá má equals() aðferð ber saman hlutina og staðsetningu þeirra á listanum.

Tengt:

Berðu saman tvo flokkaða lista

Inniheldur tveir listar sömu atriði?



Til að bera saman tvo lista til jafnréttis bara hvað varðar hluti óháð staðsetningu þeirra, verðum við að nota sort() aðferð frá Collections() bekk.

Til dæmis:

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

Framleiðsla:

true true

Berðu saman tvo lista, finndu mun

The List tengi veitir einnig aðferðir til að finna mun á tveimur listum.

The removeAll() aðferð ber saman tvo lista og fjarlægir öll algeng atriði. Eftir er viðbótarhlutirnir eða þeir sem vantar.

Til dæmis þegar við berum saman tvo lista, listOne og listTwo og við viljum komast að því hvaða hluti vantar í listTwo við notum:

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

Framleiðsla:

Missing items from listTwo [3]

Sömuleiðis, ef við notuðum:

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

Við myndum fá:

Missing items from listOne [6, 7]

Berðu saman tvo lista, finndu algeng atriði

The retainAll() aðferð heldur aðeins þeim atriðum sem eru algeng í báðum listum. Til dæmis:

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

Framleiðsla:

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