黑马程序员技术交流社区

标题: 帮我回答下这些问题 [打印本页]

作者: qmlovewhr    时间: 2013-7-10 13:00
标题: 帮我回答下这些问题
本帖最后由 杨兴庭 于 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的类型是什么样的?是不是角标,也就是整型数据?
作者: denghui1010    时间: 2013-7-10 13:36
  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. //我觉得这样就符合要求....
复制代码

作者: qmlovewhr    时间: 2013-7-10 15:30
杜光 发表于 2013-7-10 13:31
前段时间 是不是提过这样的问题了!?怎么还提问同样的?

我今天才看的视频,产生的问题,怎么会提过,郁闷?
作者: sunalong    时间: 2013-7-10 15:53
本帖最后由 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中的值全部替换掉了,你再仔细看下视频,


作者: qmlovewhr    时间: 2013-7-10 16:00
本帖最后由 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.
作者: qmlovewhr    时间: 2013-7-10 16:01
denghui1010 发表于 2013-7-10 13:36


原来是这样,没想到是这样通过循环实现,只是以为有这么个功能直接上去搞,不用其它进行辅助。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2