Java의 ArrayList
에서 어떻게 더티 체크를 수행 할 수 있습니까? 두 번째 목록에서Java : ArrayList가 더러운 지 확인 하시겠습니까?
[0][lion,Carnivorous,Africa]
[1][tiger,Carnivorous,Zambia]
[2][Goat,Herbivorous,Zimbabwe]
: I의 값이
List<Animal> animalList1 = new ArrayList<Animal>();
List<Animal> animalList2 = new ArrayList<Animal>();
제 목록에서
, :
가 나는 두 개의리스트가 물체
Animal
{
String animalName;
String animalType;
String animalPlace
}
을 값은 다음과 같습니다.
색인 (2) 상기 제 2리스트에서[0][lion,Carnivorous,Africa]
[1][tiger,Carnivorous,Zambia]
[2][Goat,Herbivorous,Norway]
10 요소의 animalPlace
노르웨이 짐바브웨에서 변화했다. 두 목록 값과 변경된 값을 비교하여 해당 개체를 별도의 목록에 넣으려면 어떻게해야합니까?
for (int i = 0; i < list1.size(); i++)
{
for (int j = i+1; j < list2.size(); j++)
{
// compare list1 and list2 values
}
}
이 빨리 및/또는 더 나은 방법이 있나요 :
List<Animal> animalList3 = new ArrayList<Animal>();
[0] [Goat,Herbivorous,Norway]
나는 for 루프 사용하여 목록을 비교하여 그 일의 전통적인 방법을 알아?
'equals()'메서드를 구현하고 유일한 것들을 유지하십시오. – azro
음, list1 [i]와 list2 [i]를 비교하고 싶습니다. 그것은 당신의 중첩 루프가하는 것이 아닙니다. 그것을 올바르게하는 것이 이미 훨씬 빠를 것입니다. 올바른 해결책을 찾아서 시작하십시오. 그다지 빠르지 않으면 최적화하십시오. @ azro가 말한대로 –
은 equals를 구현합니다. 다음을 사용할 수 있습니다 : list1.stream(). filter (a -> list2.stream() anyMatch (a2 -> a2.equals (a))). – Lino