集合框架更改的问题
我想把添加的 数字0更改成1,可在执行的过程中又把原来添加的内容重复了一遍,该把清空方法添加到什么地方才会得到更改之后的内容呢
Object obj[]=col.toArray();
for (int i=0;i<obj.length;i++)
{
if(obj[i].equals(1))
{
obj[i]=0;
}
col.add(obj[i]);
}
------解决方案--------------------Object obj[]=col.toArray();
col.clear();//这里
------解决方案--------------------List list=new ArrayList();
for (int i = 0; i < list.size(); i++) {
if(list.get(i).equals("0")){
list.set(i, "1")
}
}
不知道你是什么集合,以上代码仅供参考
------解决方案--------------------Java code
Object obj[]=col.toArray();
for (int i=0;i<obj.length;i++)
{
if(obj[i].equals(0))
{
obj[i]=1;
}
//col.add(obj[i]);这句多余的,不要
}
------解决方案--------------------
------解决方案--------------------
一楼正解
开始的时候col转化为数组 但是col的实际内容没有改变
在后面你只是改变了obj数组中的东西然后在加到col中 这时候加入的是在原先的后面
我博客有集合类的介绍http://blog.csdn.net/mengxiangyue/article/details/6876768可以看看
------解决方案--------------------
直接使用Collections.replaceAll(List<T> list,T oldValue, T newValue)可以对集合类List的值进行替换