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

com.minlia.iot.signature.AsciiSortedComparator Maven / Gradle / Ivy

package com.minlia.iot.signature;

import java.util.Comparator;
import lombok.Getter;
import lombok.Setter;

/**
 * ASCII字典排序
 * 
 * @param 
 */
public class AsciiSortedComparator implements Comparator {

	@Setter
	@Getter
	private StringAssign stringAssign;

	public AsciiSortedComparator(StringAssign stringAssign) {
		this.stringAssign = stringAssign;
	}

	@Override
	public int compare(T t1, T t2) {
		char[] string1 = stringAssign.assign(t1).toCharArray();
		char[] string2 = stringAssign.assign(t2).toCharArray();

		for (int i = 0; i < string1.length; i++) {

			if (i < string2.length) {
				if (string1[i] < string2[i]) {
					return -1;
				} else if (string1[i] > string2[i]) {
					return 1;
				}
			} else {
				return 1;
			}
		}

		return 0;
	}

	/**
	 * 指定String接口
	 * 
	 * @param 
	 */
	@FunctionalInterface
	public interface StringAssign {

		public String assign(T t);
	}

}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy