【发布时间】:2014-01-17 18:32:40
【问题描述】:
对于这个作业,我需要对一个列表进行排序并保留原始列表,但是当我单击两次按钮时,原始列表也被排序了。
String output = "";
String sortedOutput = "";
//ORIGINAL OUTPUT
for (int j = 0; j < song.size(); j++){
output += song.get(j) + "\n";
}
//SORTED OUTPUT
for (int k = 0; k < song.size(); k++){
Collections.sort(song);
sortedOutput += song.get(k) + "\n";
}
titleArtistOutput.setText("Original Order\n" + output + "\nSorted Order\n" + sortedOutput);
我可以在第一个循环中添加什么来防止它被排序吗?
编辑:
谢谢乔恩·斯基特!
我又做了一个数组列表
String output = "";
String sortedOutput = "";
List <String> sortedSongs = new ArrayList <String> (song);
for (int j = 0; j < song.size(); j++){
output += song.get(j) + "\n";
}
for (int k = 0; k < song.size(); k++){
Collections.sort(sortedSongs);
sortedOutput += sortedSongs.get(k) + "\n";
}
titleArtistOutput.setText("Original Order\n" + output + "\nSorted Order\n" + sortedOutput);
抱歉这个简单的问题,我是编程新手。
【问题讨论】:
-
每次迭代对列表进行排序有什么意义?只排序一次。
-
您似乎只有一个列表...
-
建议您查看 docs.oracle.com/javase/6/docs/api/java/util/… 的 javadocs 如果您需要,您需要保留两个列表,您知道,两个列表。
-
我同意。在我们看来,您有 1 个且只有 1 个列表。这就是为什么您需要对其进行排序
n次。答案就在我们面前。
标签: java sorting collections arraylist