All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.xiaoleilu.hutool.comparator.ReverseComparator Maven / Gradle / Ivy

package com.xiaoleilu.hutool.comparator;

import java.io.Serializable;
import java.util.Comparator;

/**
 * 反转比较器
 * 
 * @author Looly
 *
 * @param  被比较对象类型
 */
public class ReverseComparator implements Comparator, Serializable {
	private static final long serialVersionUID = 8083701245147495562L;

	/** 原始比较器 */
	private final Comparator comparator;

	@SuppressWarnings("unchecked")
	public ReverseComparator(Comparator comparator) {
		this.comparator = (null == comparator) ? ComparableComparator.INSTANCE : comparator;
	}

	//-----------------------------------------------------------------------------------------------------
	@Override
	public int compare(E o1, E o2) {
		return comparator.compare(o2, o1);
	}

	@Override
	public int hashCode() {
		return "ReverseComparator".hashCode() ^ comparator.hashCode();
	}

	@Override
	public boolean equals(final Object object) {
		if (this == object) {
			return true;
		}
		if (null == object) {
			return false;
		}
		if (object.getClass().equals(this.getClass())) {
			final ReverseComparator thatrc = (ReverseComparator) object;
			return comparator.equals(thatrc.comparator);
		}
		return false;
	}
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy