在python中读取文件可以很简单的使用
for line in myfile.readlines():
print line
而在jdk1.5中,只要我们的类实现了Iterable接口的,即也可以使用如下语句, for(Object o : iterable);
Iterable的接口声明如下.
public interface Iterable<T> {
/**
* Returns an iterator over a set of elements of type T.
*
* @return an Iterator.
*/
Iterator<T> iterator();
}
也即返回一个迭代器Iterator接口即可. 所以我们现在来改造我们的Reader,实现如下:
public class IterableReader extends BufferedReader implements Iterable<String>{
public IterableReader(Reader in) {
super(in);
}
public Iterator<String> iterator() {
return new IteratorReader();
}
class IteratorReader implements Iterator{
String line = null;
public boolean hasNext() {
try {
line = readLine();
} catch (IOException e) {
return false;
}
if(line == null) {
return false;
}
return true;
}
public Object next() {
return line;
}
public void remove() {
throw new UnsupportedOperationException();
}
}
}
现在我们的reader即可如下使用
StringReader r = new StringReader(" 111 \n 222 \n 333");
IterableReader reader = new IterableReader(r);
for(String str : reader) {
System.out.println(str);
}
是否感觉简洁了许多呢? :)
分享到:
- 2009-11-26 21:10
- 浏览 2796
- 评论(7)
- 论坛回复 / 浏览 (6 / 3491)
- 查看更多
相关推荐
使用您的API密钥实例化该类: $ iterable = new Iterable ( 'YOUR API KEY' );例子清单显示所有列表: $ iterable -> lists (); 订阅用户到列表: $ iterable -> list_subscribe ( $ list_id , array (array ( '...
检查Iterable是否为空 比Array.from(iterable).length效率更高,因为它仅迭代第一项,这对于动态迭代器可能会产生很大的影响,例如Generator执行昂贵的操作。 安装 $ npm install is-empty-iterable 用法 import ...
目录 异步遍历异步iterable的遍历异步iterable的生成异步方法和异步生成器 异步遍历 异步iterable的遍历 异步iterable的生成 异步方法和异步生成器 异步遍历 在讲解异步遍历之前,我们先回想一下ES6中的...
魔术可迭代的通过在Iterable本身上调用对Iterable中的所有项目调用方法使用 。安装 $ npm install magic-iterable用法 const magicIterable = require ( 'magic-iterable' ) ;const x = {i : 0 ,increment ( value )...
资源分类:Python库 所属语言:Python 资源全名:iterable_orm-0.3.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
PalDB 是 LinkedIn 开源的可嵌入...for (Map.Entry<String, String> entry : iterable) { String key = entry.getKey(); String value = entry.getValue(); } reader.close(); 标签:PalDB
资源来自pypi官网。 资源全名:iterable-queue-1.2.0.tar.gz
支持的类型: Array, Object, String 。 更新:暂时删除了es6类型支持。 用法 npm install shuffle-iterable var shuffle = require ( 'shuffle-iterable' ) ; var obj = { a : 5 , b : 10 , c : 15 } ; shuffle ( ...
2.下载模拟器->微信->搜索你要扒取的小程序(点开即可) 3.打开RE文件管理器,获取root权限,从根目录开始。/data/data/com.tencent.mm/MicroMsg/.../appbrand/pkg/,路径中有一段...,这里表示不确定具体一个,一般...
Java源码分析Iterable.pdf
迭代字符串拦截器拦截可迭代字符串-模板的主干import { iterableStringInterceptor } from "iterable-string-interceptor" ;import { createReadStream } from "fs" ;// double values inside {{}}// {{7}} -> 14for...
学习《Python数据分析基础》第3章最后一个例子:为每个工作簿和工作表计算总数和均值时,在pandas 实现这个例子中的data 处出现报错 此处原例子没有添加str(),但是我运行是出现报错 TypeError, ‘int’ object is ...
Python 有两种类型的循环:for 循环和 while 循环。for 循环用来遍历可迭代对象。 可迭代对象是每次可以返回其中一个元素的对象, 包括字符串、列表和元组等序列类型,以及字典和文件等非序列类型。还可以使用迭代器...
def wordCount ( source : Iterable [ String ], store : MutableMap [ String , Long ]) = source.flatMap { sentence => toWords(sentence).map(_ - > 1L ) }.foreach { case (k, v) => store.update(k, store...
for element in iterable: if element: return True return False 意思是:判断一个tuple或者list是否全部为空、0、False。如果全为空、0、False,则返回False;如果(只要有非[空或0或False])不全为空、0、...
资源分类:Python库 所属语言:Python 资源全名:iterable-api-0.1.0.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
iterable:纯函数迭代遍历
String str = "当前位置:\n"; //获取系统服务 lm=(LocationManager)getSystemService(Context.LOCATION_SERVICE); statusListener = new GpsStatus.Listener() //GPS状态监听器 { @...
具有iterable类型的集合可以通过新的for ... of循环来遍历。 for ... of循环是ES6引入的新的语法,请测试你的浏览器是否支持: 'use strict'; var a = [1, 2, 3]; for (var x of a) { } alert('你的浏览器...
迭代器(Iterable):能直接作用于for循环的对象,统称可迭代对象。例如:list、tuple、set、str、generator都是可迭代对象。 1、如何判断一个对象是否可迭代: # 如何判断一个对象是可迭代对象 #导入collections....