黑马程序员技术交流社区
标题:
迭代器查找元素的问题
[打印本页]
作者:
公子-醉香
时间:
2013-12-17 16:13
标题:
迭代器查找元素的问题
public class ListDemo {
public static void main(String [] args){
ArrayList al=new ArrayList();
//添加元素
al.add("1");
al.add("3");
al.add("5");
al.add("7");
sop("原来的集合:"+al);
//在指定位置添加元素
al.add(1, 2);
al.add(3, 4);
al.add(5, 6);
sop("添加元素后的新集合"+al);
sop("--------------------------------------");
//删除指定位置的元素
sop("删除元素之前的集合"+al);
al.remove(1);
sop("删除元素之后的集合"+al);
sop("--------------------------------------");
//修改指定位置的元素
sop("修改元素之前的集合"+al);
al.set(3, 100);
sop("修改元素之后的集合"+al);
sop("--------------------------------------");
//查找元素
sop("使用get()查找到的元素是:"+al.get(3));
sop("在一定的区间查找到的元素是:"+al.subList(1, 4));//问题:查找的是角标从1到4位置的元素,为什么显示的是从1到3的呢?
Iterator it=al.iterator();
while(it.hasNext()){
sop("使用迭代器Iterator查找到的元素是:"+it.next());
}
}
public static void sop(Object obj){
System.out.println(obj);
}
}
复制代码
作者:
Cway㊣
时间:
2013-12-17 16:16
subList(1,4):从1到4但不包含4
见API:
List<E> subList(int fromIndex, int toIndex)
返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
作者:
程洋
时间:
2013-12-17 16:46
在集合中,subList(int fromIndex, int toIndex),中包含fromIndex,不包含toIndex,也就是视频中老师常说的包含头不包含尾
作者:
松毛
时间:
2013-12-17 16:49
集合中的区间是包含头不包含尾的!原集合:[1, 3, 4, 100, 6, 7]
使用了al.subList(1, 4)后,打印的就是从位置1都位置3的元素!
作者:
张天昊76
时间:
2013-12-17 17:52
它只包含头不包含尾,所以就没有4咯。
作者:
冯国强
时间:
2013-12-17 21:52
问题是字符串对象方法subString,是获取指定开始,到指定结尾的前一位。所以上述代码指定获取1到4,但不包括4,所以显示出来的是1到3.
如果要获取1到4,则要指定1到5.
作者:
冯国强
时间:
2013-12-17 21:58
修改上述不是字符串对象的方法,而是集合的方法,subList(from,to)。原理和字符串对象的方法subString一样。所以如果要查找1到4的话,要指定1到5.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2