![](/img/trans.png)
[英]Sorting a 2D List containing both Strings and Integers, sort by integers asc how do i do? (JAVA)
[英]How to sort an array containing both characters and integers?
考慮以下數組:
{5,"k",2,"d",3,"e"}
如何對數組進行排序,使字符和整數分別分組並排序:
{"d","e","k",2,3,5}
您可以通過調用Arrays
的sort()
方法之一來對Arrays
進行sort()
。
在您的情況下,您想調用sort(T[] a, Comparator<? super T> c)
。
由於您的數組是一個Object[]
,這意味着您需要實現Comparator<Object>
。
這是一個示例實現,可以根據需要對示例值進行排序:
public final class MixedComparator implements Comparator<Object> {
@Override
@SuppressWarnings({ "unchecked", "rawtypes" })
public int compare(Object obj1, Object obj2) {
Class<?> class1 = obj1.getClass();
Class<?> class2 = obj2.getClass();
// Sort values of same type according to their natural order
if (class1 == class2)
return ((Comparable)obj1).compareTo(obj2);
// Sort values of different type by class name,
// in descending order, so `String` sorts before `Integer`
return class2.getName().compareTo(class1.getName());
}
}
然后,您可以像這樣使用它:
Object[] arr = { 5, "k", 2, "d", 3, "e" };
Arrays.sort(arr, new MixedComparator());
System.out.println(Arrays.toString(arr));
輸出:
[d, e, k, 2, 3, 5]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.