我正在根据自定义.sort
对包含字符串的数组列表进行排序。这些实际上是表中的值。有时字符串实际上可以是浮点数(作为字符串对象)。所以整个列都是浮点数。如果是这样,我希望将它们作为浮点数而不是字符串进行比较。知道如何修改以下代码才能工作吗?我应该能够使用try / catch检查它是否是浮点数但是如何更改排序?
static Comparator<String[]> byIndices(int[] arr) {
Comparator<String[]> comparator = comparing((array) -> array[arr[0]]);
int c = 0;
for (int index : arr) {
if (c == 0) {
continue;
}
comparator = comparator.thenComparing((array) -> array[index]);
c++;
}
return comparator;
}
答案 0 :(得分:1)
您可以尝试为比较器创建工厂。哪个会根据您需要的天气返回比较器实例字符串比较或Float比较。下面是一个伪代码
ComparatorFactory{
public Comparator getComparator(String inputType)
if(// inputType is float){
// return float comparator;
}
// return String comparator
}