看到视频中的Collections中fill练习,没有找到答案,自己写了一个。给大家分享一下
有什么问题希望指正。
代码:
- package ch01;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.List;
- /*需求:Collections中的fill方法会将list集合中的元素替换成想要替换的元素,
- * 但是有局限性,就是会全部替换。
- * 需求来了:定义一个函数将list中指定位置的元素使用fill进行替换
- *
- * */
- public class fillDemo {
- public static void main (String[]args){
- //创建一个测试用list
- List<String> li = new ArrayList<String>();
- li.add("aaaa");
- li.add("bbbb");
- li.add("ccc");
- li.add("ddd");
- li.add("eeee");
- //打印这个list
- System.out.println(li);
- //调用创建的静态函数
- myFill(li,1,4);
- //打印替换完的list
- System.out.println(li);
- }
- public static List<String> myFill (List<String> li,int start,int end){
- //使用list里的sublist
- //返回的列表由此列表支持,因此返回列表中的非结构性更改将反映在此列表中,
- //反之亦然。返回的列表支持此列表支持的所有可选列表操作
- List<String> subli = li.subList(start, end);
- //将sublist中得元素使用fill进行替换
- Collections.fill(subli,"zzzz");
- //由于sublist的特性,sub集合中的元素会反映到原来的集合
- return li;
- }
- }
复制代码 总结:其实就是用了list中的sublist这个方法的一个特性,使用fill进行替换,最后返回原来的list。
以上。
|