TreeSet和Comparable
Java通过TreeSet可以实现对元素的排序。排序规则通过元素类实现Comparable接口,然后重写该Comparable接口的ComparaTo方法来规定。
这里我们有一个FileNode类, 让该类实现Comparable,并通过对比文件的路径长短来排序。
排序按照文件路径'从近到远'(就是d:/1->d:/1/1->d:/1/1/1)
public class FileNode implements Comparable<FileNode>{ File self;private Set<FileNode> childList;public File getSelf(){return self;}public void setSelf(File self){this.self = self;}public FileNode(File self){ this.self = self;}private String getSelfPath(){return this.self.getAbsolutePath();}@Overridepublic int compareTo(FileNode o){if(this.getSelfPath().equals(o.getSelfPath())){return 0;}else{ return this.getSelfPath().length()-o.getSelfPath().length(); //这里如果结果是负数, 那么两个对象就会互换位置.}}}