【发布时间】:2013-06-10 12:17:21
【问题描述】:
考虑下面给出的数组列表
unsortedList = {6,"ball",3,1,"apple","cat",4}
这需要排序
sortedList = {1,"apple",3,4,"ball","cat",6}
按字母顺序对字符串进行排序。按升序对数字进行排序。但请注意以下条件:
- 无论在未排序列表中的何处存在整数,它都必须是已排序列表中的整数。
- 无论字符串在未排序列表中的何处,它都必须是已排序列表中的字符串。
请注意,在上面的例子中,所有的整数都按升序排序,所有的字符串都按升序排序,但整数和字符串的相对位置与之前没有变化。
【问题讨论】:
-
我很难弄清楚排序标准。
-
是什么让“苹果”> 1 和“球”> 4 ?
-
@jterrace 什么都没有。他只想将整数保持在与未排序列表相同的位置(与字符串相同)。然后对整数与整数、字符串与字符串进行排序。
-
建议:将其拆分为 Integer/String 列表,对它们进行排序,然后根据原始列表中的类型将它们重新组合到新列表中(
LinkedList#poll很好)。跨度> -
我明白了……必须保留数据类型顺序。
标签: java algorithm sorting arraylist