list泛型改变重复值,保留重复值的第一条

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去接收,会自动去重的。