說一說Java中集合的排序問題。
■排序後不去重
Arrays.sort
■排序後去重
SortedSet
參考代碼和測試結果
public static void main(String[] args) {
List<String> lst = new ArrayList<String>();
lst.add("1");
lst.add("3");
lst.add("2");
lst.add("1");
Object[] aa = lst.toArray();
Arrays.sort(aa);
for (Object obj : aa) {
System.out.println(obj);
}
System.out.println("##############################");
String[] strArr = lst.toArray(new String[lst.size()]);
Arrays.sort(strArr);
for (String str : strArr) {
System.out.println(str);
}
System.out.println("##############################");
SortedSet<String> sst = new TreeSet<String>();
for (String str : lst) {
sst.add(str);
}
for (String str : sst) {
System.out.println(str);
}
System.out.println("##############################");
List<Integer> lstI = new ArrayList<Integer>();
lstI.add(1);
lstI.add(3);
lstI.add(2);
lstI.add(1);
SortedSet<Integer> sstI = new TreeSet<Integer>();
for (Integer i : lstI) {
sstI.add(i);
}
for (Integer i : sstI) {
System.out.println(i);
}
}
測試結果
1
1
2
3
##############################
1
1
2
3
##############################
1
2
3
##############################
1
2
3