java迭代器添加list_【JAVA语法】持有对象--Java中迭代器listIterator的用法

写在前面:

我也是一名java语言的爱好者,仅以此文作为学习的记录,对于文中出现的代码规范,代码格式,算法效率等问题,希望各路大神不吝赐教,在下感激不尽。同是学习的同学也同样希望互相交流,取长补短。

——zsferrier@126.com

以下内容是学习《java编程思想》(《Thinking in Java》)的笔记,包括对习题的实现。

上一篇文章说到java中的迭代器Iterator只能单向移动。而ListIterator可以双向移动,不过它只能用于各种List的访问。即可以产生相对于当前位置前一个和后一个元素的索引。并且可以使用set()方法替换它访问过的最后一个元素,可以调用listIterator(n)创建一个开始就指向索引为n的元素处的ListIterator。

1.看下面一段代码:

Listlist = new ArrayList(Arrays.asList(0,1,2,3,4,5,6,7));

ListIteratorlistIterator = list.listIterator();

System.out.println("the next one is "+listIterator.nextIndex());

System.out.println("the previous one is "+listIterator.previousIndex());

f89ed73d9f5f1dab88cc4514f4937f5a.png

可以看到在迭代器为列表原点时,nextIndex为0,而previousIndex为-1(当然不建议这么去做,因为索引为-1的元素事实上已经越界了。),这说明next方法指向当前位置的元素,而previous方法指向当前位置前一个的元素。

2.set方法的使用。

用指定元素替换 next 或 previous 返回的最后一个元素(可选操作)。只有在最后一次调用 next 或 previous 后既没有调用 ListIterator.remove 也没有调用 ListIterator.add 时才可以进行该调用。

Listlist = new ArrayList(Arrays.asList(0,1,2,3,4,5,6,7));

ListIteratorlistIterator = list.listIterator();

listIterator.next();

listIterator.set(new Integer(99));

System.out.println(list);

0ec74f1c82ed6be54146660a44e301e9.png

这样就把next方法返回的0给替换掉了。

3.练习:创建并组装一个List,然后创建第二个具有相同尺寸的List,并使用ListIterator读取第一个List中的元素,然后再将他们以反序插入到第二个列表中去。

Listlist = new ArrayList(Arrays.asList(0,1,2,3,4,5,6,7));

Listlist2 = new ArrayList(8);

ListIteratorlistIterator = list.listIterator(8);

while(listIterator.hasPrevious()){

list2.add(listIterator.previous());

}

System.out.println(list2);

dba9b7e7581c30cabff714beec72804a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值