- import java.util.Collections;
- import java.util.LinkedList;
- import java.util.List;
- public class smallT {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- List<String> list = new LinkedList<String>();
- list.add("haha0");
- list.add("haha1");
- list.add("haha2");
- list.add("haha4");
- //list.add("haha5");
- System.out.println("开始时候的List:"+list);
- //调用方法,将2和3替换成"0000"
- list = replaceParts(list, 2, 3, "0000");
- System.out.println("结束时候的List:"+list);
- }
- public static List<String> replaceParts(List<String> list,int a,int b,String c){
- //获取2到3之间的子列表
- List<String> sublist1=list.subList(a, b+1);
- System.out.println("截取a,b+1后的sublit1:"+sublist1);
- //填充
- System.out.println("执行前的List:"+list);
- Collections.fill(sublist1, c);
- System.out.println("执行后的List:"+list);
- System.out.println("填充sublit1:"+sublist1);
- //从索引2出添加子列表
- list.addAll(a, sublist1);
- System.out.println("list在a位置后添加sbulit1后的结果:+"+list);
- return list;
- }
- }
复制代码
开始时候的List:[haha0, haha1, haha2, haha4]
截取a,b+1后的sublit1:[haha2, haha4]
执行前的List:[haha0, haha1, haha2, haha4]
执行后的List:[haha0, haha1, 0000, 0000]
填充sublit1:[0000, 0000]
list在a位置后添加sbulit1后的结果:+[haha0, haha1, 0000, 0000, 0000, 0000]
结束时候的List:[haha0, haha1, 0000, 0000, 0000, 0000]
在你执行Collections.fill(sublist1, c); 这段代码后list就已经发生了变化,然后你继续添加2个0000的字符串进去,自然就编程后面全是0000啦!
|