日期:2014-05-20  浏览次数:20790 次

集合框架更改的问题
我想把添加的 数字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]);这句多余的,不要
  }

------解决方案--------------------
探讨

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的值进行替换