A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 黄玉昆 于 2013-3-16 23:22 编辑

/*
  下面的程序是用fill方法可以将list集合中所有元素替换成指定元素。
*/
import java.util.*;
class CollectionsDemo2
{
public static void main(String[] args)
{
  fillDemo();
}

public static void fillDemo()
{
  List<String> list = new ArrayList<String>();
  
  list.add("abcd");
  list.add("aaa");
  list.add("zz");
  list.add("kkkkkk");
  
  sop(list);//输出list
  
  Collections.fill(list, "pp");//fill方法可以将list集合中所有元素替换成指定元素。
  sop(list);//输出替换后的list
  
}
public static void sop(Object obj)
{
  System.out.println(obj);
}
}
问题: 试将list集合中部分元素替换成指定元素???

点评

如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-16 14:02

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

4 个回复

倒序浏览
那要看你要替换哪些元素了,比如你要替换list中的第3个元素就是:list[2]="pp",不知道你说的部分元素指什么,如果需要的话,你可以设定一个规则,如果list中的元素不符合这个规则就把他们替换成你想要的string字符串。

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
renhao0118 发表于 2013-3-16 10:53
那要看你要替换哪些元素了,比如你要替换list中的第3个元素就是:list[2]="pp",不知道你说的部分元素指什 ...

不对,list<String> 已经被泛型限定为String类型了,不是数组类型的,你把这个语句添加上去会报错的
回复 使用道具 举报
没在API中找到替换部分元素的方法,不过你可以遍历时指定条件,替换元素,也就是 修改
  1. List<String> list = new ArrayList<String>();
  2.   list.add("abcd");
  3.   list.add("aaa");
  4. ListIterator<String> li = list.listIterator<String>();
  5. while(li.hasNext()){
  6.       if(li.next().equals(" XXX"))//指定某个条件
  7.            li.set("XX");     //按要求修改元素
  8. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
猫腻 + 1

查看全部评分

回复 使用道具 举报
局部替换可以自己编个方法 下面代码亲测可运行
  1. import java.util.*;
  2. class CollectionsDemo2
  3. {
  4. public static void main(String[] args)
  5. {
  6.   fillDemo();
  7. }

  8. public static void fillDemo()
  9. {
  10.   List<String> list = new ArrayList<String>();
  11.   
  12.   list.add("abcd");
  13.   list.add("aaa");
  14.   list.add("zz");
  15.   list.add("kkkkkk");
  16.   
  17.   sop(list);//输出list
  18.   
  19.   Collections.fill(list, "pp");//fill方法可以将list集合中所有元素替换成指定元素。
  20. sop(list);
  21.   getList(list,0,3,"tt"); //______-----------> 注意此处亲,调用局部置换算法 替换前几个值为 tt
  22.   sop(list);//输出替换后的list
  23.   
  24. }
  25. public static void sop(Object obj)
  26. {
  27.   System.out.println(obj);
  28. }
  29. public static List<String> getList(List<String> list,int start,int ends,String str)
  30.     {
  31.         if(ends>list.size()||ends-start<0)  //越界非法
  32.             throw new RuntimeException("非法的数值!");
  33.         for(int i=start;i<ends;i++)
  34.         {
  35.             list.set(i, str);  //替换
  36.         }
  37.         return list;  
  38.     }
  39. }
复制代码
希望对你有帮助

评分

参与人数 1技术分 +1 收起 理由
洪建超 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马