如何实现 Comparator.compare(T o1, TO o2) 方法
How to implement Comparator.compare(T o1, T o2) method
private static final String[] values = { FAULT, INVALID, QUERY, SKIP, SUCCESS, NO_ACTION }
我的用例要求我以 public static <T> T min(Collection<? extends T> coll,Comparator<? super T> comp)
returns FAULT
的方式实现 Comparator.compare(T o1, T o2)
方法,当比较 FAULT
和 INVALID
, returns INVALID
,比较INVALID
和QUERY
等时.
String.compareTo()
在这种情况下不起作用,因为这会导致字典顺序。
这里的一个简单实现是
Comparator<String> cmp = Comparator.comparingInt(Arrays.asList(values)::indexOf);
...这将找到您在此处提供的 values
数组中首次出现的字符串。 (如果数组中不存在任何字符串,将首先返回这些字符串,但听起来并非如此。)
private static final String[] values = { FAULT, INVALID, QUERY, SKIP, SUCCESS, NO_ACTION }
我的用例要求我以 public static <T> T min(Collection<? extends T> coll,Comparator<? super T> comp)
returns FAULT
的方式实现 Comparator.compare(T o1, T o2)
方法,当比较 FAULT
和 INVALID
, returns INVALID
,比较INVALID
和QUERY
等时.
String.compareTo()
在这种情况下不起作用,因为这会导致字典顺序。
这里的一个简单实现是
Comparator<String> cmp = Comparator.comparingInt(Arrays.asList(values)::indexOf);
...这将找到您在此处提供的 values
数组中首次出现的字符串。 (如果数组中不存在任何字符串,将首先返回这些字符串,但听起来并非如此。)