Java 无法对字符串的ArrayList排序

Java 无法对字符串的ArrayList排序,java,string,arraylist,Java,String,Arraylist,我想按字母顺序对字符串的数组列表进行排序, 我什么都试过了, 简单地说: List<String> theList = new ArrayList<String>(); theList.add("silex");theList.add("soliton"); theList.add("snake");theList.add("supracanon"); Collections.sort(theList); 排序过程前后,列表的内容不变 =================

我想按字母顺序对字符串的数组列表进行排序, 我什么都试过了, 简单地说:

List<String> theList = new ArrayList<String>();
theList.add("silex");theList.add("soliton");
theList.add("snake");theList.add("supracanon");
Collections.sort(theList);
排序过程前后,列表的内容不变

============================================================================= 好的,这是实际的代码,我有一个EJB做数据库访问, 它的一个方法是返回字符串列表

字符串列表的顺序与单词表中的顺序相同(按字母顺序排列) 但是,“Collections.sort(rList)”什么都不做(输入=输出)

“after”数组按字母顺序排序:

18:44:07,962 INFO  [STDOUT] After=========
18:44:07,962 INFO  [STDOUT] SUMO VIE
18:44:07,962 INFO  [STDOUT] Segolene
18:44:07,962 INFO  [STDOUT] SupraCanon
18:44:07,962 INFO  [STDOUT] silex
18:44:07,962 INFO  [STDOUT] snake
18:44:07,962 INFO  [STDOUT] soliton
只是大写字母优先

编辑:如果需要不区分大小写的排序,请使用:

theList.add("SUMO VIE");theList.add("soliton");
theList.add("snake");theList.add("supracanon");
Collections.sort(theList, String.CASE_INSENSITIVE_ORDER);
根据下面的Natix建议。

您的“after”数组按字母顺序排序:

18:44:07,962 INFO  [STDOUT] After=========
18:44:07,962 INFO  [STDOUT] SUMO VIE
18:44:07,962 INFO  [STDOUT] Segolene
18:44:07,962 INFO  [STDOUT] SupraCanon
18:44:07,962 INFO  [STDOUT] silex
18:44:07,962 INFO  [STDOUT] snake
18:44:07,962 INFO  [STDOUT] soliton
只是大写字母优先

编辑:如果需要不区分大小写的排序,请使用:

theList.add("SUMO VIE");theList.add("soliton");
theList.add("snake");theList.add("supracanon");
Collections.sort(theList, String.CASE_INSENSITIVE_ORDER);

正如下面Natix所建议的那样。

大写字符在小写字符之前

"SUMO VIE".compareTo("Segolene") < 0

大写字符在小写字符之前

"SUMO VIE".compareTo("Segolene") < 0

它究竟如何“不起作用”?您是如何运行该代码以及如何检查结果的?请看,我已经尝试了您的代码,它看起来很好,如图所示:。@assylias:它没有排序,请注意OP在每行插入两个元素。@Eildosa:很可能错误出现在您现在显示给我们的代码中。再次:向我们展示您获得的输出和您期望的输出,否则我们将无能为力。它到底是如何“不起作用”的?您是如何运行该代码以及如何检查结果的?请看,我已经尝试了您的代码,它看起来很好,如图所示:。@assylias:它没有排序,请注意OP在每行插入两个元素。@Eildosa:很可能错误出现在您现在显示给我们的代码中。再次:向我们展示你得到的输出和你期望的输出,否则我们无法帮助。哦,上帝,我怎么能看不到xD?!谢谢是的,我想对它们进行不敏感的分类。我使用了异国情调的snipet并在返回中添加了toLowerCase(),但如果您有更好的建议,我很乐意接受。String.compareTo()使用unicode代码进行排序。你应该用一个项圈来代替。哦,天哪,我怎么能看不到那个xD?!谢谢是的,我想对它们进行不敏感的分类。我使用了异国情调的snipet并在返回中添加了toLowerCase(),但如果您有更好的建议,我很乐意接受。String.compareTo()使用unicode代码进行排序。你应该用一个折叠式的。
"SUMO VIE".compareTo("Segolene") < 0
Collections.sort(rList, String.CASE_INSENSITIVE_ORDER);