文章目录

  • 命令行:
  • 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);}}
}

递归列出文件下的文件信息,迭代器相关推荐

  1. 【Java基础】递归输出目录下所有文件路径

    递归输出目录下所有文件路径 import java.io.File;public class FileTest {public static void main(String[] args) {// ...

  2. linux opendir php,php opendir()列出目录下所有文件的实例代码

    这篇文章主要介绍了php opendir()列出目录下所有文件的实例代码的相关资料,需要的朋友可以参考下 php opendir()函数用于打开目录,通常与readdir()和closedir()函数 ...

  3. linux循环目录下目录,Shell循环列出目录下所有文件或查找目录下包含指定字符串的文件...

    一.循环列出目录下所有文件 #!/bin/bash function frfile() { local basefolder=$1 echo $basefolder #local filename f ...

  4. python 抓取目录树_python 获取文件下所有文件或目录os.walk()的实例

    在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目 ...

  5. python获取文件路径下的文件_python 获取文件下所有文件或目录os.walk()的实例

    在python3.6版本中去掉了os.path.walk()函数 os.walk() 函数声明:walk(top,topdown=True,oneerror=None) 1.参数top表示需要遍历的目 ...

  6. 批处理之列出目录下所有文件

    @echo off rem 列出目录下的所有文件名称 for /f  %%a in ('dir /a /b  c:\') do echo %%a

  7. python遍历目录下所有文件_Python递归遍历目录下所有文件

    #自定义函数: importos path="D:\\Temp_del\\a" defgci (path):"""this is a statemen ...

  8. [转载] Python递归遍历目录下所有文件查找指定文件

    参考链接: Python目录和文件管理 之前看到网上有人说『os.path.isdir()判断必须写绝对路径』,当时心想Python不是有迭代上下文吗,为什么不行?遂作本文验证之 代码部分 考虑用一个 ...

  9. java 递归获取目录下所有文件

    对于一个嵌套的目录,获取目录下所有的文件,可以使用一下两种方式: 1.递归方法: static List<String> ergodic(File file, List<String ...

最新文章

  1. 【第一道计算几何题】 UVA11178 Morley‘s Theorem (二维几何,旋转直线求求交点)
  2. SAP号码段表及相关操作T-CODE
  3. Bit-Z召开全球生态联盟暨韩国战略发布会 将成立BZ资本
  4. 2017.8.7 数学作业 思考记录
  5. SAP License:利润中心的替代应用
  6. [leetcode]1131. 绝对值表达式的最大值 ---曼哈顿距离,四角思维
  7. 谈谈VIP漂移那点破事
  8. 判断变量是空_python基础(二):变量的数据类型、常量、操作符、分支、循环、条件判断...
  9. web前端笔试题整合
  10. 谷歌Chrome浏览器如何开启无痕模式 Chrome浏览器无痕模式开启方法
  11. oracle ogg checkpoint,OGG目的端的checkpoint table被drop的修复方法
  12. 利用计算机来对指纹,指纹自动识别系统.doc
  13. 插入法排序(c语言)
  14. Apple和元宇宙,迄今为止我们所知道的一切
  15. Linux 压缩软件的使用
  16. 图解网络(三)——TCP篇07
  17. PAT a1134
  18. 南邮四年来的学校主页
  19. Multisim基础 有极性的电容 添加元件的位置
  20. java 一个接口可以继承多个接口吗

热门文章

  1. 文件系统及软链接和硬链接
  2. vue-cli3.0打包时如何忽略某个第三方依赖包
  3. Python 获取系统信息模块psutil(转载)
  4. Burpsuite如何抓取使用了SSL或TLS传输的 IOS App流量
  5. 找单词(母函数问题)
  6. js jq 一些属性
  7. 信息学奥赛一本通 1092:求出e的值 | OpenJudge NOI 1.5 35
  8. 信息学奥赛一本通(1221:分成互质组)
  9. 信息奥赛一本通(1119:矩阵交换行)
  10. 种树(信息学奥赛一本通-T1423)