Как в java сравнить два arraylist<object>?

Пользователь

от krista , в категории: Java , год назад

Как в java сравнить два arraylist<object>?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от bernardo_nolan , год назад

@krista 

Для сравнения двух ArrayList в Java можно использовать метод equals() класса ArrayList.


Пример:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
ArrayList list1 = new ArrayList();
list1.add("one");
list1.add("two");
list1.add("three");

ArrayList list2 = new ArrayList();
list2.add("one");
list2.add("two");
list2.add("three");

if (list1.equals(list2)) {
    System.out.println("The two ArrayLists are equal");
} else {
    System.out.println("The two ArrayLists are not equal");
}


Этот код создает два ArrayList (list1 и list2) и заполняет их значениями. Затем он сравнивает их с помощью метода equals(). Если два ArrayList содержат одни и те же элементы в том же порядке, то метод вернет true, в противном случае – false. В данном случае метод вернет true и выведет в консоль сообщение «The two ArrayLists are equal».

Пользователь

от adrien.waters , 8 месяцев назад

@krista 

Дополнительно, если вам нужно сравнить два ArrayList на предмет содержания одних и тех же элементов, но без учета порядка, то можно использовать другой подход. Вот пример, как это можно сделать:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
ArrayList<String> list1 = new ArrayList<>();
list1.add("one");
list1.add("two");
list1.add("three");

ArrayList<String> list2 = new ArrayList<>();
list2.add("two");
list2.add("three");
list2.add("one");

boolean equalLists = list1.size() == list2.size() && list1.containsAll(list2) && list2.containsAll(list1);

if (equalLists) {
    System.out.println("The two ArrayLists contain the same elements disregarding order");
} else {
    System.out.println("The two ArrayLists do not contain the same elements disregarding order");
}


Этот код проверяет, что оба ArrayList имеют одинаковый размер, что содержат одни и те же элементы (без учета порядка) и выводит соответствующее сообщение в консоль.