A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 公子-醉香 中级黑马   /  2013-12-17 16:13  /  1570 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. public class ListDemo {
  2.         public static void main(String [] args){
  3.                 ArrayList al=new ArrayList();
  4.                 //添加元素
  5.                 al.add("1");
  6.                 al.add("3");
  7.                 al.add("5");
  8.                 al.add("7");
  9.                 sop("原来的集合:"+al);
  10.                 //在指定位置添加元素
  11.                 al.add(1, 2);
  12.                 al.add(3, 4);
  13.                 al.add(5, 6);
  14.                 sop("添加元素后的新集合"+al);
  15.                 sop("--------------------------------------");
  16.                 //删除指定位置的元素
  17.                 sop("删除元素之前的集合"+al);
  18.                 al.remove(1);
  19.                 sop("删除元素之后的集合"+al);
  20.                 sop("--------------------------------------");
  21.                 //修改指定位置的元素
  22.                 sop("修改元素之前的集合"+al);
  23.                 al.set(3, 100);
  24.                 sop("修改元素之后的集合"+al);
  25.                 sop("--------------------------------------");
  26.                 //查找元素
  27.                 sop("使用get()查找到的元素是:"+al.get(3));
  28.                 sop("在一定的区间查找到的元素是:"+al.subList(1, 4));//问题:查找的是角标从1到4位置的元素,为什么显示的是从1到3的呢?
  29.                 Iterator it=al.iterator();
  30.                 while(it.hasNext()){
  31.                         sop("使用迭代器Iterator查找到的元素是:"+it.next());
  32.                 }
  33.                
  34.         }
  35.        
  36.         public static void sop(Object obj){
  37.                 System.out.println(obj);
  38.         }
  39. }
复制代码


评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

7 个回复

倒序浏览
subList(1,4):从1到4但不包含4
见API:
List<E> subList(int fromIndex, int toIndex)
          返回列表中指定的 fromIndex(包括 )和 toIndex(不包括)之间的部分视图。
回复 使用道具 举报
在集合中,subList(int fromIndex, int toIndex),中包含fromIndex,不包含toIndex,也就是视频中老师常说的包含头不包含尾
回复 使用道具 举报
集合中的区间是包含头不包含尾的!原集合:[1, 3, 4, 100, 6, 7]
使用了al.subList(1, 4)后,打印的就是从位置1都位置3的元素!
回复 使用道具 举报
它只包含头不包含尾,所以就没有4咯。
回复 使用道具 举报
问题是字符串对象方法subString,是获取指定开始,到指定结尾的前一位。所以上述代码指定获取1到4,但不包括4,所以显示出来的是1到3.
如果要获取1到4,则要指定1到5.
回复 使用道具 举报
修改上述不是字符串对象的方法,而是集合的方法,subList(from,to)。原理和字符串对象的方法subString一样。所以如果要查找1到4的话,要指定1到5.
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马