我正在尝试根据列表中单词的长度对数组列表中的元素进行排序。所以最短到最长。 使用下面的代码,由于某种原因它不会被排序。
问题- 我的实现中的错误在哪里?
public static void sort(ArrayList<String> list) {
for(int i = 0; i < list.size(); i++) {
String e1 = list.get(i);
for(int j = i; j < list.size(); j++) {
String e2 = list.get(j);
if( e1.length() > e2.length()) {
String tmp = e1;
e1 = e2;
e2 = tmp;
}
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
编辑:
public static void sort(ArrayList<String> list) {
for(int i = 0; i < list.size(); i++) {
String e1 = list.get(i);
for(int j = i; j < list.size(); j++) {
String e2 = list.get(j);
if( e1.length() > e2.length()) {
String tmp = e1;
e1 = e2;
e2 = tmp;
list.set(j, e1);
list.set(i, e2);
}
}
}
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}