zl程序教程

您现在的位置是:首页 >  后端

当前栏目

java实体比较集合排序

JAVA集合排序 比较 实体
2023-09-14 09:16:27 时间

主要是有一个比较器,实际就是一个继承自Comparator的比较方法,进行具体的比较逻辑

private static class DataDirFileComparator implements Comparator<File>,Serializable{

	private static final long serialVersinUID = -2648639884525140318L;
	private String prefix;
	private boolean ascending;
	public DataDirFileComparator(String prefix,boolean ascending){
		this.prefix = prefix;
		this.ascending = ascending;
	}
	public int compare(File o1,File o2){
		long z1 = Util.getZxidFromName(o1.getName(),prefix);
		long z2 = Util.getZxidFromName(o2.getName(),prefix);
		int result = z1<z2>-1:(z1>z2?1:0);
		return ascending?result:-result;
	}
	
	public static List<File> sortDataDir(File[] files,String prefix,boolean ascending){
		if(files==null){
			return new ArrayList<File>();
		}
		Lis<File> filelist = Arrays.asList(files);
		Collections.sort(filelist,new DataDirFileComparator(prefix,ascending));
		return filelist;
	}
}