匿名内部类 , Iterable<T> 和 Iterator<T>
package generic; import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Iterator; public class ReversibleArrayList<T> extends ArrayList<T> {
private static final long serialVersionUID = -2293646393609696016L; public ReversibleArrayList(Collection<T> collection){
super(collection);
} public Iterable<T> reversed(){
return new Iterable<T>() { @Override
public Iterator<T> iterator() {
return new Iterator<T>() {
int idx = ReversibleArrayList.this.size() - 1; @Override
public boolean hasNext() {
return idx > -1;
} @Override
public T next() {
return ReversibleArrayList.this.get(idx--);
} @Override
public void remove() {
throw new UnsupportedOperationException();
}
};
} };
} public static void main(String[] args) {
ReversibleArrayList<String> list = new ReversibleArrayList<String>(
Arrays.asList("To be or not to be".split(" "))); for (String s : list) {
System.out.println(s);
} System.out.println("----------------"); for (String s : list.reversed()) {
System.out.println(s);
}
} }
匿名内部类 , Iterable<T> 和 Iterator<T>的更多相关文章
- Python中的可迭代Iterable和迭代器Iterator
目录 Iterable可迭代对象 如何判断对象是否是可迭代对象Iterable Iterator迭代器 如何判断对象是否迭代器Iterator 将Iterable转换成Iterator Iterabl ...
- Collection<E>、Iterable<T>和Iterator<E>接口
Collection接口 public interface Collection<E>extends Iterable<E> Collection接口主要包含以下方法: Ite ...
- python中的Iterable对象和Iterator
参考链接:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143178254 ...
- 可迭代对象(Iterable)和迭代器(Iterator)
迭代是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一 个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退. 1. 可迭代对象 以直接作用于 ...
- java学习--Iterable 和 Iterator
Iterable Iterable :故名思议,实现了这个接口的集合对象支持迭代,是可迭代的. 一个集合对象要表明自己支持迭代,能有使用foreach语句的特权,就必须实现Iterable接口,表明我 ...
- Java之iterator迭代器和iterable接口
java.lang.Iterable java.util.Iterator Iterator是迭代器类,而Iterable是接口. 好多类都实现了Iterable接口,这样对象就可以调用iterato ...
- Python关键字yield详解以及Iterable 和Iterator区别
迭代器(Iterator) 为了理解yield是什么,首先要明白生成器(generator)是什么,在讲生成器之前先说说迭代器(iterator),当创建一个列表(list)时,你可以逐个的读取每一项 ...
- Iterator & Iterable 和 Comparable&Comparator
java.lang.Iterator & java.lang.Iterable Iterator和Iterable的区别和联系 iterator是具有迭代状态的对象.它允许你检查它是否有更多的 ...
- java中的Iterator和Iterable 区别
java.lang.Iterable java.util.Iterator 来自百度知道: Iterator是迭代器类,而Iterable是接口. 好多类都实现了Iterable接口,这样对象就可以调 ...
随机推荐
- appium+python自动化49-yaml管理定位元素
前言 如何高效管理定位元素,这个是很有学问的问题,也是面试必问的[以下纯属个人观点,勿喷!]. 有的人用xml管理页面定位元素,这种逼格略高,但是小编认为学习成本大,贼麻烦. 有的人提到用excel管 ...
- luci框架-LUA的一个web框架使用
转自:http://blog.csdn.net/initphp/article/details/17527639 LUCI 这个在百度上搜索除了一篇我的百度文库 luci 的介绍文章之外,前三页都是些 ...
- google的开源项目总结
转自http://www.feng5166.com/blog/424.html google的开源项目值得我们一用的,这些项目很有意义,甚至可以直接用在我们自己的工作上!学习编程的的一个比较好的方式就 ...
- 在ios中微信video和audio无法自动播放解决方案
WeixinJSBridgeReady页面初始化的时候会执行 document.addEventListener("WeixinJSBridgeReady", function ( ...
- Java笔记15:多线程
Java实现多线程有两种方式:一是继承Thread类:二是实现Runable接口. 一.Thread实现 publicclass ThreadDemo2 { publicstaticvoid main ...
- thinkphp+Jquery MiniUI 开发 管理系统
Jquery Miniui JS 兼容IE6+的浏览器,非常适合在企业内部使用. 管理系统等都非常方便. 在企业内部正在使用的是前期asp.net +fineui实现的管理系统.经过了几年的实践检验. ...
- 算法笔记_087:蓝桥杯练习 9-1九宫格(Java)
目录 1 问题描述 2 解决方案 1 问题描述 问题描述 九宫格.输入1-9这9个数字的一种任意排序,构成3*3二维数组.如果每行.每列以及对角线之和都相等,打印1.否则打印0. 样例输出 与上面 ...
- eclipse 编译JAVA 项目导入的WEB项目 无法编译问题
右击你的项目 选择properties ---->java Build Path--->Default output folder新建一个classes目录就好了 watermark/2 ...
- [Swift A] - HTTP请求
iOS开发中大部分App的网络数据交换是基于HTTP协议的.本文将简单介绍在Swift中使用HTTP进行网络请求的几种方法. 注意:网络请求完成后会获得一个NSData类型的返回数据,如果数据格式为J ...
- 在进程中执行新代码 execl、execle、execlp、execv、execve和execvp函数
摘要:本文主要讲述怎样在进程中执行新代码,以及exec系列函数的基本用法. 在进程中执行新代码 用函数fork创建子进程后,假设希望在当前子进程中运行新的程序,能够调用exec函数运行还有一个程序.当 ...