Android 移除ArrayList<HashMap<String, String>>中的重复

 我来答
dyj丶丶丶丶丶
2015-01-12 · 超过10用户采纳过TA的回答
知道答主
回答量:23
采纳率:0%
帮助的人:9.6万
展开全部

移除ArrayList中的重复项,可以通过遍历ArrayList中的每一项与其他项去进行比较,如果想等就移除对应的项,这种方法比较麻烦.......也可以使用Set来装ArrayList中的数据,如果一定要用ArrayList的话就再从Set里面把数据取出来装进ArrayList中,因为Set是自动去重复的,这样一来就可以把重复项去掉了....望采纳哦,还写了代码的:

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;


public class SetTest {

public static void main(String[] args) {
HashSet<HashMap<String, String>> nlistset= new HashSet<HashMap<String, String>>();

//构造你的集合初始化数据
ArrayList<HashMap<String, String>> olist= new ArrayList<HashMap<String, String>>();
HashMap<String, String> map = new HashMap<String, String>();
map.put("123","123");
for(int i=0;i<10;i++){
olist.add(map);
}
System.out.println(olist.size()); //10

//遍历你的集合
HashMap<String, String> map1=null;
for(int i=0;i<olist.size();i++){
map1= olist.get(i);
nlistset.add(map1);      
}
System.out.println(nlistset.size());  //1

//从新还原 自己的 集合
HashMap<String, String> map2=null;
//清空原有集合
olist.clear();
System.out.println(olist.size()); //0

Iterator it = nlistset.iterator();
while(it.hasNext()){
map2=(HashMap<String, String>) it.next();
olist.add(map2);
}
System.out.println(olist.size()); //1
}
}

注:去掉的是ArrayList中的重复,不是HashMap中的重复(Hashmap中不能重复)。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式