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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© qmlovewhr 中级黑马   /  2013-7-10 13:00  /  1021 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-7-10 22:40 编辑

import java.util.*;
class CollectionsDemo2
{
public static void main(String[] args)
{
  fillDemo();
  replaceAllDemo();
}
public static void replaceAllDemo()
{
  List<String>list=new ArrayList<String>();
  list.add("abcd");
  list.add("aaa");
  list.add("zz");
  list.add("kkkkk");
  sop(list);
  Collections.replaceAll(list,"aaa","pp");
  sop(list);
  Collections.reverse(list);
  sop(list);
}
public static void fillDemo()
{
  List<String>list=new ArrayList<String>();
  list.add("abcd");
  list.add("aaa");
  list.add("zz");
  list.add("kkkkk");
  sop(list);
  Collections.fill(list,"qq");
  sop(list);
}
public static void sop(Object obj)
{
  System.out.println(obj);
}
}
在这段程序当中有个fillDemo的方法是将集合中的全部对象用一个对象给替换掉,可是如果想指定内容进行替换,怎么实行,老毕说fillDemo(list,start,end);我试了下,没试出来,其中在想这样一个问题,要替换的内容要放在哪,并且list是对象吗,其中start和end的类型是什么样的?是不是角标,也就是整型数据?

评分

参与人数 1技术分 +1 收起 理由
杜光 + 1 赞一个!

查看全部评分

5 个回复

倒序浏览
  1. public class Test1
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.             List<String>list=new ArrayList<String>();
  6.         list.add("abcd");
  7.         list.add("aaa");
  8.         list.add("zz");
  9.         list.add("kkkkk");
  10.             fillDemo(list,1,3);
  11.     }
  12.    
  13.     public static void fillDemo(List list,int start,int end)
  14.     {
  15.       
  16.       sop(list);
  17.       for(;start<=end;start++)
  18.       {
  19.               list.set(start-1, "qq");
  20.       }
  21. //      Collections.fill(list,"qq");
  22.       sop(list);
  23.     }
  24.    
  25.     public static void sop(Object obj)
  26.     {
  27.       System.out.println(obj);
  28.     }
  29.    
  30. }
  31. //我觉得这样就符合要求....
复制代码

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
杜光 发表于 2013-7-10 13:31
前段时间 是不是提过这样的问题了!?怎么还提问同样的?

我今天才看的视频,产生的问题,怎么会提过,郁闷?
回复 使用道具 举报
本帖最后由 sunalong 于 2013-7-10 15:56 编辑

下面的代码可以满足你的要求:
  1. import java.util.*;

  2. class CollectionsDemo2 {
  3.         public static void main(String[] args) {
  4.                 fillDemo();
  5.         }

  6.         public static void fillDemo() {
  7.                 List<String> list = new ArrayList<String>();
  8.                 list.add("abcd");
  9.                 list.add("aaa");
  10.                 list.add("zz");
  11.                 list.add("kkkkk");
  12.                 sop(list);
  13.                 Collections.fill(list, "qq");
  14.                 sop(list);
  15.         }

  16.         public static void sop(Object obj) {
  17.                 System.out.println(obj);
  18.         }
  19. }
复制代码
运行结果为:
[abcd, aaa, zz, kkkkk]
[qq, qq, qq, qq]

可见已经由[abcd, aaa, zz, kkkkk]变为了 [qq, qq, qq, qq]
满足你的意思了吧?其实并不是所谓有fillDemo(list,start,end)能全部将list中的值全部替换,是Collections.fill(list, "qq");将list中的值全部替换掉了,你再仔细看下视频,

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 qmlovewhr 于 2013-7-10 16:04 编辑
sunalong 发表于 2013-7-10 15:53
下面的代码可以满足你的要求:运行结果为:
[abcd, aaa, zz, kkkkk]
[qq, qq, qq, qq]

举个例子,我是想将[abcd,aaa,zz,kkkkk]用一个什么功能变成[abcd,qq,qq,kkkkk]这样的,只把其中某些对象变成qq.
回复 使用道具 举报


原来是这样,没想到是这样通过循环实现,只是以为有这么个功能直接上去搞,不用其它进行辅助。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马