------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
今天学习有关Collections类中fill方法,毕老师布置作业,自己第一个方法,实现将list中部分元素替换。
我通过阅读fill方法源码,修改代码如下:
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.RandomAccess;
public class FillTest {
private static final int FILL_THRESHOLD = 25;
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
list.add("aaa");
list.add("abs");
list.add("agh");
list.add("jhg");
list.add("lky");
list.add("ihy");
list.add("jon");
list.add("ojk");
MyFill(list, "BBB", 9, 8);
System.out.println(list);
}
public static <T> void MyFill(List<? super T> list, T key, int start,
int end) {
int size = list.size();
if (start > end || start > size || end > size) {
System.out.println("范围错误");
return;
}
if (size < FILL_THRESHOLD || list instanceof RandomAccess) {
for (int i = start; i <= end; i++)
list.set(i, key);
} else {
ListIterator<? super T> itr = list.listIterator();
for (int i = start; i <= end; i++) {
itr.next();
itr.set(key);
}
}
}
}
相信大家看了之后就会懂了。
------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------