我有一個ArrayList
,這裏有一些HashMap<String, String>
。所以,我想比較地圖中的相同值。當我找到相同的值時,我想保留它們的一張地圖。例如,考慮第二張地圖和第五張地圖(在數組列表中)具有相同的值。我想保留第二張地圖,並從陣列列表中刪除第五張地圖。 我試着做一個迭代器,但我做不到。看起來很複雜。你可以給我一個例子嗎?將ArrayList中的HashMap值進行比較
這是我最後一次嘗試:
private HashMap<String, String> mapValues = new HashMap<String, String>();
private HashMap<String, String> mapValues2 = new HashMap<String,String>();
private HashMap<Integer, String> mval = new HashMap<Integer, String>();
//i take the ArrayList with the maps for comparison private
ArrayList<HashMap<String, String>> check(ArrayList<HashMap<String, String>> list) {
//a new ArrayList. It will have the maps(HashMap<key, value>) with no same values.
ArrayList<HashMap<String, String>> listFinal = new ArrayList<HashMap<String, String();
for (int i = 0; i < list.size(); i++) {
mapValues = list.get(i);
mval.put(i, mapValues.get("value"));
}
for (int i = 0; i < mval.size(); i++) {
HashMap<String, String> newMapValues = new HashMap<String, String>();
mapValues2 = list.get(i);
String iVal = mapValues2.get("value");
newMapValues = list.get(i);
int flag = -1;
int remove = -1;
for (int j = i+1; j < mval.size()-1; j++) {
String jVal = mval.get(j);
if (val.compareTo(jVal) == 0) {
flag = i;
remove = j;
}
}
if (flag == -1) {
listFinal.add(newMapValues);
} else if (flag != -1) {
listFinal.remove(remove);
}
}
}
我重新標記它如Java,因爲你講ArrayList'(人均A和L)和'HashMap'(大寫的H和M) – xanatos
的'什麼你認爲地圖具有相同的價值嗎?有一個相同的元素,擁有相同的密鑰,還是具有完全相同的元素集?這真的取決於!請澄清你的答案。 – pcalcao
請發佈顯示您的數據結構的代碼示例。 –