Java эки тизмени салыштыр

Java'дагы Тизме интерфейси эки Тизмени салыштырып, тизмеден жалпы жана жетишпеген нерселерди табууга мүмкүнчүлүк берет.



Теңдик үчүн эки иреттелбеген тизмени салыштырып көрүңүз

Эгер эки тизме бирдей экендигин, башкача айтканда, бир эле нерселерди камтып, бир эле индексте пайда болгонун текшергиңиз келсе, анда биз төмөнкүлөрдү колдоно алабыз:

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

Чыгуу:


true false

Көрүнүп тургандай equals() методу элементтерди жана алардын тизмедеги ордун салыштырат.

Окшош:




Эки иреттелген тизмени салыштырыңыз

Эки тизмеде бир эле нерсе барбы?



Эки тизмени жайгашкан жерине карабастан, бирдей денгээлде салыштыруу үчүн, биз sort() колдонушубуз керек ыкмасы Collections() класс.

Мисалы:

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

Чыгуу:


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

Чыгуу:


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

Чыгуу:


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