递归列出文件下的文件信息,迭代器
文章目录
- 命令行:
- API:
- 1.迭代器
- 2.Iterator接口的常用方法:
- 3.示例:
命令行:
递归的列出文件目录下的所有文件 -ls -R
[hadoop@hadoop000 hadoop]$ hadoop fs -ls -R /hdfsapi/test
API:
HDFS查询文件列表时为什么返回的是迭代器(RemoteIterator),而不是list之类的容器?
RemoteIterator<LocatedFileStatus>listFiles = fs.listFiles(new Path("/"), true);
//true是递归查询
这是因为递归查询文件非常多,如果用list等容器,客户端压力很大,迭代器是建立与服务器之间的联系,不用把大量数据拉到客户端;
1.迭代器
迭代器模式:就是提供一种方法对一个容器对象中的各个元素进行访问,而又不暴露该对象容器的内部细节。
概述:
1.Java集合框架的集合类,我们有时候称之为容器。容器的种类有很多种,比如ArrayList、LinkedList、HashSet…,每种容器都有自己的特点,ArrayList底层维护的是一个数组;LinkedList是链表结构的;HashSet依赖的是哈希表,每种容器都有自己特有的数据结构。
2.因为容器的内部结构不同,很多时候可能不知道该怎样去遍历一个容器中的元素。所以为了使对容器内元素的操作更为简单,Java引入了迭代器模式!
3.把访问逻辑从不同类型的集合类中抽取出来,从而避免向外部暴露集合的内部结构。
2.Iterator接口的常用方法:
修饰语和类型 | 方法 | 描述 |
---|---|---|
boolean | hasNext() | 判断集合中还有没有可以被取出的元素,如果有返回true |
E | next() | 取出集合中的下一个元素 |
3.示例:
public class IteratorDemo {public static void main(String[] args) {Collection<String> coll = new ArrayList<String>(); //多态coll.add("abc1");coll.add("abc2");coll.add("abc3");coll.add("abc4");// 迭代器,对集合ArrayList中的元素进行取出// 调用集合的方法iterator()获取Iterator接口的实现类的对象Iterator<String> it = coll.iterator();// 接口实现类对象,调用方法hasNext()判断集合中是否有元素// boolean b = it.hasNext();// 接口的实现类对象,调用方法next()取出集合中的元素// String s = it.next();// 迭代是反复内容,使用循环实现,循环的终止条件:集合中没元素, hasNext()返回了falsewhile (it.hasNext()) {String s = it.next();System.out.println(s);}}
}
递归列出文件下的文件信息,迭代器相关推荐
- 【Java基础】递归输出目录下所有文件路径
递归输出目录下所有文件路径 import java.io.File;public class FileTest {public static void main(String[] args) {// ...
- linux opendir php,php opendir()列出目录下所有文件的实例代码
这篇文章主要介绍了php opendir()列出目录下所有文件的实例代码的相关资料,需要的朋友可以参考下 php opendir()函数用于打开目录,通常与readdir()和closedir()函数 ...
- linux循环目录下目录,Shell循环列出目录下所有文件或查找目录下包含指定字符串的文件...
一.循环列出目录下所有文件 #!/bin/bash function frfile() { local basefolder=$1 echo $basefolder #local filename f ...
- python 抓取目录树_python 获取文件下所有文件或目录os.walk()的实例
在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目 ...
- python获取文件路径下的文件_python 获取文件下所有文件或目录os.walk()的实例
在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目 ...
- 批处理之列出目录下所有文件
@echo off rem 列出目录下的所有文件名称 for /f %%a in ('dir /a /b c:\') do echo %%a
- python遍历目录下所有文件_Python递归遍历目录下所有文件
#自定义函数: importos path="D:\\Temp_del\\a" defgci (path):"""this is a statemen ...
- [转载] Python递归遍历目录下所有文件查找指定文件
参考链接: Python目录和文件管理 之前看到网上有人说『os.path.isdir()判断必须写绝对路径』,当时心想Python不是有迭代上下文吗,为什么不行?遂作本文验证之 代码部分 考虑用一个 ...
- java 递归获取目录下所有文件
对于一个嵌套的目录,获取目录下所有的文件,可以使用一下两种方式: 1.递归方法: static List<String> ergodic(File file, List<String ...
最新文章
- 【第一道计算几何题】 UVA11178 Morley‘s Theorem (二维几何,旋转直线求求交点)
- SAP号码段表及相关操作T-CODE
- Bit-Z召开全球生态联盟暨韩国战略发布会 将成立BZ资本
- 2017.8.7 数学作业 思考记录
- SAP License:利润中心的替代应用
- [leetcode]1131. 绝对值表达式的最大值 ---曼哈顿距离,四角思维
- 谈谈VIP漂移那点破事
- 判断变量是空_python基础(二):变量的数据类型、常量、操作符、分支、循环、条件判断...
- web前端笔试题整合
- 谷歌Chrome浏览器如何开启无痕模式 Chrome浏览器无痕模式开启方法
- oracle ogg checkpoint,OGG目的端的checkpoint table被drop的修复方法
- 利用计算机来对指纹,指纹自动识别系统.doc
- 插入法排序(c语言)
- Apple和元宇宙,迄今为止我们所知道的一切
- Linux 压缩软件的使用
- 图解网络(三)——TCP篇07
- PAT a1134
- 南邮四年来的学校主页
- Multisim基础 有极性的电容 添加元件的位置
- java 一个接口可以继承多个接口吗