java Comparator类的使用

来源:互联网 发布:数据库references 编辑:程序博客网 时间:2024/05/01 14:31

需求:

在控制台输出D盘中(不需要递归)所有的文件和目录名称。要求如下: 1. 目录(文件夹)显示在前,文件(非目录)显示在后 2. 按名称升序排列

代码:

package main;import java.io.File;import java.text.Collator;import java.util.Collections;import java.util.Comparator;import java.util.TreeSet;public class Main {/** * 在控制台输出D盘中(不需要递归)所有的文件和目录名称。要求如下: 1. 目录(文件夹)显示在前,文件(非目录)显示在后 2. 按名称升序排列 *  * @param args */public static void main(String[] args) {File dir = new File("C:/Java");fun(dir);}public static void fun(File dir) {File[] files = dir.listFiles();TreeSet<File> set = new TreeSet<>(new Comparator<File>() {@Overridepublic int compare(File o1, File o2) {return Collator.getInstance().compare(o1.getName(), o2.getName());}});for (int i = 0; i < 2; i++) {for (File f : files) {if (i == 0 ? f.isDirectory() : f.isFile()) {set.add(f);}}for (File file : set) {System.out.println(file);}set.clear();}}}


原创粉丝点击