日期:2014-05-18  浏览次数:20818 次

怎么去除两个数组中重复的字段 然后获得新的不重复的内容
本帖最后由 zgchengzj 于 2013-03-27 14:05:32 编辑
如题; 我写的如下可是有问题 请大神指点

ArrayList<String> mContactsName = new ArrayList<String>();
List<RecoverContactsInfo> list;
private List<RecoverContactsInfo> addlist = new ArrayList<RecoverContactsInfo>();
...........

for (int i = 0; i < mContactsName.size(); i++) {

   for (RecoverContactsInfo rc : list) {
String name=mContactsName.get(i).trim();
String num = mContactsNumber.get(i).replace("-","").replace(" ", "");
//当名字与号码都不一样
if(!name.equals(rc.getName().trim()) && !num.equals(rc.getNumber())){
addlist.add(rc);
}
}
}

------解决方案--------------------
用List.retainAll()得到交集,然后用List.removeAll()去掉交集里的元素就可以了。
------解决方案--------------------
如楼上所说把两组字符串放入分别放入 HashSet 集合addAll

直接拿HashSet集合里的值就是不重复且两组字符串相加的结果了。