对数组列表中的异类元素进行排序
问题描述:
如何对数组列表中的异类元素进行排序?例如,对数组列表中的异类元素进行排序
ArrayList l1 = new ArrayList();
l1.add(1);
l1.add("hi");
l1.add(1.0f);
现在如何排序这个数组列表?``
答
你将不得不实现自己的Comparator
其中比较至少上限所有涉及的类型。在这种情况下,Object
。 (昨天)
相关问题:
答
定义可计算排序规则。然后实现在实现Comparator
类这些规则和使用
Collections.sort(l1, myComparator); // myComparator is an instance of the class
// you just implemented
答
这取决于你如何希望他们排序。你可以将列表分成具有定义类型的新ArrayList,对它们中的每一个进行排序然后连接它们?
喜欢的东西:(伪)
ArrayList<Integer> intList = new ArrayList<Integer>();
ArrayList<Integer> stringList = new ArrayList<Integer>();
// ...etc
for (Object o : list) {
if (o.getClass().equals(Integer.TYPE))
intList.add(o);
else if (o.getClass().equals(String.class))
stringList.add(o);
// ...etc
}
sort(intList);
sort(stringList);
// ...etc
concatenate(intList, stringList, ...);
这就是我认为你做的反正。
你想如何分类? – aioobe