私は今、ハッシュマップをいじっています。各ハッシュマップの値がchar配列の場合、2つのハッシュマップの値を比較する方法を見つけようとしています。私は周りを見回して、うまくいくかもしれないいくつかの方法を見つけました - 適切に実装する方法がわかりません。基本的に、キーは異なるが値が同じである 2 つのマップがあります。マップの 1 つを繰り返し処理し、同じ値の場合に true を返すブール値を作成したいと考えています。誰かがこれを理解するのを手伝ってくれたら、それは素晴らしいことです. 私のコードは、これまでに試したことを以下に示しています。
publipublic class MapExample {
public static void main(String[] args) {
Map<String, char[]> map1 = new HashMap<String, char[]>();
Map<String, char[]> map2 = new HashMap<String, char[]>();
char[] letters1 = new char[3];
letters1[0] = 'a';
letters1[1] = 'b';
letters1[2] = 'c';
char[] letters2 = new char[3];
letters2[0] = 'x';
letters2[1] = 'y';
letters2[2] = 'z';
map1.put("1", letters1);
map1.put("2", letters2);
map1.put("3", letters1);
map2.put("4", letters1);
Set s = map1.entrySet();
Iterator it = s.iterator();
boolean containsValue;
//I've tried this but it produces false (and infinite loop) when maps have the same value
while (it.hasNext()) {
containsValue = map1.equals(map2.values());
System.out.println(containsValue);
}
//I've tried this too, but can't seem to adjust the lists to accept char[]
/*
List<String> values1 = new ArrayList<String>(map1.values());
List<String> values2 = new ArrayList<String>(map2.values());
Collections.sort(values1);
Collections.sort(values2);
boolean mapsHaveEqualValues = values1.equals(values2);*/
}
}