【发布时间】:2015-04-02 16:22:22
【问题描述】:
首先,我希望程序做的是按每个列表的第一个元素按字母顺序对列表进行排序。 然后将它们排序回原来的顺序。 代码如下。
ArrayList<ArrayList<String>> mylist = new ArrayList<ArrayList<String>>();
List<String> List1 = new ArrayList<String>();
List<String> List2 = new ArrayList<String>();
List<String> List3 = new ArrayList<String>();
List1.add("A");
List2.add("B");
List3.add("A");
List1.add("C");
List2.add("D");
List3.add("E");
mylist.add((ArrayList<String>) List1);
mylist.add((ArrayList<String>) List2);
mylist.add((ArrayList<String>) List3);
System.out.println(mylist.toString());
此刻的打印是:
[[A, C], [B, D], [A, E]]
我想对它们进行排序,结果如下:
[[A, C], [A, E], [B, D]]
然后能够将它们排序回原来的形式:
[[A, C], [B, D], [A, E]]
【问题讨论】:
-
创建封闭列表的副本,并对该副本进行排序。您将按原始顺序获得原始列表,副本按第一个元素排序。您不能“撤消”排序:排序是不可逆的。