我有一个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
请发布显示您的数据结构的代码示例。 –