list泛型中有n组相同的数值,如果我想只保留第一组数值,其他的数值进行重新赋值。
如: List listWithDup = new ArrayList();
PageData p = new PageData();
p.put("1", "test");
listWithDup.add(p);
p = new PageData();
p.put("1", "test");
listWithDup.add(p);
p = new PageData();
p.put("2", "测试");
listWithDup.add(p);
p = new PageData();
p.put("2", "测试");
listWithDup.add(p);
想把其中一个值为1,test的改为 3,demo,该怎么做?请教各位大神!
list泛型中有n组相同的数值,如果我想只保留第一组数值,其他的数值进行重新赋值。
new ArrayList<>(new HashSet<>(listWithDup))
1.如果你是要剔除掉重复的元素可以新增一个list,遍历原来的list插入新的list,如果新list中有该元素,则不插入(或者修改插入);
2.如果你是要指定改变“想把其中一个值为1,test的改为 3”,则新增一个标记,遍历查找list的元素,第一次查找到不处理(记录)第二次查找到进行修改
新建一个list,遍历原来的lis,如果新list中不存在则存入,存在则重新赋值
使用Set或者嵌套Set
没看懂你的问题到底要做什么,PageData是个Map,还是自己写的在该类中写的put方法?
List list1=new ArrayList();//去重前
List list2=new ArrayList();//去重后
Set set=new HashSet();
for (Object object : list1) {
if(set.add(object))
list2.add(object);
}
增加一个标记字段判断 ifAdd 是否添加过,用这个判断是否重复。。。。
用set,不要求顺序直接set ,
遍历list,用set去接收,会自动去重的。