按引用对列表进行排序
Sorting a list by reference
排序方法 Collections.sort(list)
在列表上有效,即使我通过引用传递也是如此。但是,当我使用以下方法时,列表没有得到排序。
public void getSortedList(ArrayList<String> currList) {
ArrayList<String> list = new ArrayList<>();
Cursor cursor = database.rawQuery(
"SELECT * FROM " + TABLE_NAME + " ORDER BY name DESC", null);
while (cursor.moveToNext()) {
String name = cursor.getString(0);
if (currList.contains(name)) {
list.add(name);
}
}
cursor.close();
currList = list;
}
currList = list;
不会更改您传递给方法的引用,因为 Java 是一种按值传递的语言。
相反,您应该 return 列表 :
public List<String> getSortedList()
{
List<String> list = new ArrayList<>();
...
return list;
}
排序方法 Collections.sort(list)
在列表上有效,即使我通过引用传递也是如此。但是,当我使用以下方法时,列表没有得到排序。
public void getSortedList(ArrayList<String> currList) {
ArrayList<String> list = new ArrayList<>();
Cursor cursor = database.rawQuery(
"SELECT * FROM " + TABLE_NAME + " ORDER BY name DESC", null);
while (cursor.moveToNext()) {
String name = cursor.getString(0);
if (currList.contains(name)) {
list.add(name);
}
}
cursor.close();
currList = list;
}
currList = list;
不会更改您传递给方法的引用,因为 Java 是一种按值传递的语言。
相反,您应该 return 列表 :
public List<String> getSortedList()
{
List<String> list = new ArrayList<>();
...
return list;
}