⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sortcomparator.java

📁 sample目录下是例子程序。 1.分组汇总例子 TestGroupReport.java 2.交叉报表例子 TestCrossReport.java 需要使用crossTabSample.x
💻 JAVA
字号:
package com.lucaslee.report;

import java.util.Comparator;
import java.util.Vector;

/**
 * 排序比较器.按照指定的序列排序.
 * <p>
 * Title:
 * </p>
 * <p>
 * Description:
 * </p>
 * <p>
 * Copyright: Copyright (c) 2003
 * </p>
 * <p>
 * Company:Lucas-lee Soft
 * </p>
 * 
 * @author Lucas Lee
 * @version 1.0
 */
public class SortComparator implements Comparator {
	/** 按照此序列中的顺序排序. */
	private Vector sequence;

	/**
	 * @param seq
	 *            排序序列。
	 */
	public SortComparator(Vector seq) {
		sequence = seq;
	}

	/**
	 * 获得对象在序列中的序号。
	 * 
	 * @param o
	 *            对象
	 * @return 序号
	 */
	private int getIndex(Object o) {
		if (sequence != null) {
			for (int i = 0; i < sequence.size(); i++) {
				if (o.equals(sequence.elementAt(i))) {
					return i;
				}
			}
		}
		return -1;
	}

	/**
	 * 比较两个对象的大小。 保证:在序列中的比不在序列中的小;两个都在序列中的,排在前面的小。 参考父类文档。
	 * 
	 * @param o1
	 *            要比较的对象1
	 * @param o2
	 *            要比较的对象2
	 * @return
	 */
	public int compare(Object o1, Object o2) {
		int ind1 = getIndex(o1);
		int ind2 = getIndex(o2);
		int result = 0;
		if (ind1 >= 0) {
			if (ind2 >= 0) {
				if (ind1 < ind2) {
					result = -1;
				} else if (ind1 == ind2) {
					result = 0;
				} else {// 即:(ind1 > ind2)
					result = 1;
				}
			} else {
				result = -1;
			}
		} else {
			result = 1;
		}
		return result;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -