对数组列表中的异类元素进行排序

对数组列表中的异类元素进行排序

问题描述:

如何对数组列表中的异类元素进行排序?例如,对数组列表中的异类元素进行排序

ArrayList l1 = new ArrayList(); 
l1.add(1); 
l1.add("hi"); 
l1.add(1.0f); 

现在如何排序这个数组列表?``

+2

你想如何分类? – aioobe

你将不得不实现自己的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, ...); 

这就是我认为你做的反正。