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]