首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Files.walkFileTree中的遍历顺序

Files.walkFileTree中的遍历顺序
EN

Stack Overflow用户
提问于 2012-05-01 10:47:55
回答 2查看 5.2K关注 0票数 15

Files.walkFileTree访问同一级别的文件/目录的顺序是什么?

它似乎不会按大小、上次修改时间或名称的顺序访问它们。我在API documentation里也找不到任何东西。

也许preVisitDirectory方法可以用来指定访问顺序,但是默认行为是什么呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-01 10:54:34

the Java Tutorial中,读取子目录的顺序不是按照此注释定义的

首先对文件树进行深度遍历,但您不能对访问子目录的迭代顺序做出任何假设。

至于读取文件的顺序,它(在当前实现中)取决于提供的DirectoryStream,即我的计算机上的sun.nio.fs.WindowsDirectoryStream。阅读the javadoc of DirectoryStream,您将看到:

迭代器返回的元素没有特定的顺序。

票数 19
EN

Stack Overflow用户

发布于 2018-03-23 06:14:51

java可以稍后为您排序,这是我所做的。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
public static void printy(Path rootDirPath) {
        //treesets to hold paths alphabetically
        TreeSet<Path> paths = new TreeSet<>();
        try {
            Files.walkFileTree(rootDirPath, new SimpleFileVisitor<Path>() {
                @Override
                public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
                    paths.add(dir);
                    return super.preVisitDirectory(rootDirPath, attrs);
                }
                @Override
                public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
                    paths.add(file);
                    return super.visitFile(rootDirPath, attrs);
                }
                @Override
                public FileVisitResult visitFileFailed(Path file, IOException exc) throws IOException {
                    return super.visitFileFailed(file, exc);
                }
                @Override
                public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
                    return super.postVisitDirectory(rootDirPath, exc);
                }
            });
        //I'm printing the contents alphabetically,.. your impl might vary
        paths.forEach(System.out::println);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

希望这能有所帮助

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10396649

复制
相关文章
HashMap遍历以及遍历顺序[通俗易懂]
(在leetcode12. 整数转罗马数字题目中使用到HashMap遍历,遂做此记录!)
全栈程序员站长
2022/09/30
1.4K0
hashmap顺序遍历_遍历排序
hashmap元素排序 想要hashmap中的元素有序可以使用linkedHashMap。
全栈程序员站长
2022/09/30
1.4K0
LeetCode 897. 递增顺序查找树(中序遍历)
给定一个树,按中序遍历重新排列树,使树中最左边的结点现在是树的根,并且每个结点没有左子结点,只有一个右子结点。
Michael阿明
2020/07/13
5260
LeetCode 897. 递增顺序查找树(中序遍历)
HashMap与LinkedHashMap的遍历key的顺序
HashMap是无序的,这种无序是指put的顺序和遍历出来的顺序不一样。 LinkedHashMap是按照默认插入的顺序排列的。
HaC
2020/12/30
4.5K0
LeetCode 285. 二叉搜索树中的顺序后继(中序遍历)
类似题目:LeetCode 510. 二叉搜索树中的中序后继 II(查找右子树或者祖父节点)
Michael阿明
2020/07/13
9420
Python enumerate函数无法顺序遍历集合
今天使用Python中的enumerate函数,犯了一个很低级的错误,enumerate用于遍历如字符串,列表,元组中的变量,但是并不能顺序遍历字典中的变量,举个例子:
chaibubble
2019/05/26
1K0
Python enumerate函数无法顺序遍历字典
本文介绍了Python中enumerate函数的作用,以及如何使用它来遍历字符串、列表、元组和字典。同时,也举例说明了这些数据类型的区别和用法,并给出了相应的示例代码。
chaibubble
2018/01/02
3.1K2
[Swift] Swift 中的遍历
上一篇曾经说过,2020 年我接触了项目管理、iOS 开发、goLang 开发,所以,后续更新的内容也会逐步丰富起来。
CnPeng
2021/01/18
3.3K0
[Swift] Swift 中的遍历
树的遍历--树的广度遍历(层次遍历),深度遍历(前序遍历,中序遍历,后序遍历的递归和非递归实现)
由于本人的码云太多太乱了,于是决定一个一个的整合到一个springboot项目里面。
ydymz
2018/12/24
4.6K0
LeetCode 1600. 皇位继承顺序(图的深度优先遍历)
一个王国里住着国王、他的孩子们、他的孙子们等等。每一个时间点,这个家庭里有人出生也有人死亡。
Michael阿明
2021/02/19
5460
树的遍历(已知前序遍历中序遍历求后序遍历,或者已知后序中序求先序)
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并返回。
砖业洋__
2023/05/06
2830
Python中的字典遍历
备忘一下python中的字典如何遍历,没有什么太多技术含量.仅供作为初学者的我参考.
技术小黑屋
2018/09/04
2.6K0
Python中list的遍历
在python中,若要遍历一个list而且需要在遍历时修改list,则需要十分注意,因为这样可能会导致死循环,例如: In [10]: ls = ['hello', 'world', 'bugggggggg'] In [11]: for item in ls: ....: if len(item) > 5: ....: ls.insert(0, item) ....: print ls ....: ['bugggggggg'
宅蓝三木
2018/02/07
1.5K0
Java中容器的遍历
当我们用增强for循环遍历非并发容器(HashMap、ArrayList等),如果修改其结构,会抛出异常 ConcurrentModificationException,因此在阿里巴巴的Java规范中有说到:不要在foreach循环里进行元素的remove/add操作,remove元素请使用Iterator方式。,但是不是真的就不可以在增强for循环中修改结构吗?其原理又是什么呢?
健程之道
2019/11/03
8260
Golang 语言--map 用range遍历不能保证顺序输出
按照之前我对map的理解,map中的数据应该是有序二叉树的存储顺序,正常的遍历也应该是有序的遍历和输出,但实际试了一下,却发现并非如此,网上查了下,发现从Go1开始,遍历的起始节点就是随机了,当然随机
李海彬
2018/03/21
1.4K0
Golang 语言--map 用range遍历不能保证顺序输出
Python中的顺序表介绍
在 Python 中,列表是一种基本的数据类型,列表的数据组成了一个序列,序列里的数据是有序的(索引),可以快速地找到指定的数据。
Python碎片公众号
2021/02/26
1.3K0
Python中的顺序表介绍
Windows 窗体中的事件顺序
对于依次处理其中每个事件的开发人员,Windows 窗体应用程序中引发事件的顺序非常具有吸引力。 当出现需要谨慎处理事件的情况时(例如,在重绘窗体的某些部件时),有必要了解运行时引发事件的确切顺序。 本主题提供了应用程序和控件的生存期中几个重要阶段中的事件顺序的详细信息。 有关鼠标输入事件的顺序的特定详细信息,请参阅Windows 窗体中的鼠标事件。Windows 窗体中的事件的概述,请参阅事件概述。 有关事件处理程序的构成的详细信息,请参阅事件处理程序概述。
CNXY
2019/05/24
1.2K0
翻转句子中单词的顺序
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。 例如输入“I am a student.”,则输出“student. a am I”。 由于本题需要翻转句子,我们先颠倒句子中的所有字符。这时,不但翻转了句子中单词的顺序,而且单词内字符也被翻转了。我们再颠倒每个单词内的字符。由于单词内的字符被翻转两次,因此顺序仍然和输入时的顺序保持一致。 还是以上面的输入为例子。翻转“I am a student.”中所有字符得到“.tn
猿人谷
2018/01/17
1.7K0
前序遍历中序遍历求后序遍历-数组篇
如果已知前序遍历和中序遍历,那么肯定能够求出后序遍历。正常的思路就是,根据前序遍历和中序遍历,我们把二叉树的结构给描述出来,然后再使用后序遍历。
chain
2018/08/02
2.4K0
前序遍历中序遍历求后序遍历-数组篇
css中padding中样式的顺序含义
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116576.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/07
1.2K0

相似问题

字典中的遍历顺序

42

BST中的顺序遍历

13

顺序遍历的大O,在顺序遍历,后顺序,树的层次顺序

10

在给定顺序遍历和顺序前遍历的情况下,生成顺序后遍历

10

顺序遍历和后序遍历

27
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文