List a = new ArrayList();
a.add("one");
a.add("two");
a.add("one");
Map> map = new HashMap();
map.put(1,list1);
map.put(1,list2);
リスト1とリスト2を比較するにはどうすればよいですか?
ベストアンサー
これは例です(建設が意味をなされるように地図を修正しました)
@Test
public void testListCompare(){
List a = new ArrayList();
a.add("one");
a.add("two");
a.add("one");
List list1 = new ArrayList();
list1.add("one");
list1.add("two");
list1.add("one");
List list2 = new ArrayList();
list2.add("two");
list2.add("one");
list2.add("one");
Map> map = new HashMap();
map.put(1,list1);
map.put(2,list2);
for(Map.Entry> entry: map.entrySet()){
System.out.println(a.equals(entry.getValue()));
}
}
ArrayList
を使用しているので、リストを適切に比較するために
equals()
メソッドがオーバーライドされた AbstractList
が拡張されます。
それ以外の場合、独自の List
を実装すると、次のようなことができます:
public boolean ifListsAreEqual(List base, List candidate){
if(base.size() != candidate.size()){
return false;
}
for(int i = 0; i < base.size(); i++){
if(!base.get(i).equals(candidate.get(i))){
return false;
}
}
return true;
}