【发布时间】:2017-01-05 03:59:42
【问题描述】:
我现在正在编写我的第一个 Java 游戏的代码,我遇到了 ArrayList 的问题。我有一个,带有昵称和分数等元素,具体来说,我是从文本文件中创建的(代码如下):
static ArrayList<String> results = new ArrayList<String>();
BufferedReader br = new BufferedReader(new FileReader(ranking));
String line = br.readLine();
results.add(line);
while(line != null) {
line = br.readLine();
results.add(line);
}
br.close();
所以文件看起来像这样:
nick1
score1
nick2
score2
...
我想对前 10 名最佳结果进行排名,我的想法是使用字段 nick 和 score 来创建类,并以某种方式将这些字段分配给 ArrayList 中的适当字段。也许我可以这样做:(?)
for(int i = 0;i<results.size();i=i+2){
nick = results.get(i);
}
for(int i = 1;i<results.size();i=i+2){
score = results.get(i);
}
然后我会创建一个新的ArrayList,它的类型就是那个新类。但我的问题是我不完全知道如何将“旧”ArrayList 的值与新ArrayList 的未来类型的参数联系起来。新的应该是这样的:
static ArrayList<Ranking> resultsAfterModification = new ArrayList<Ranking>();
Ranking rank = new Ranking(nick, score);
然后我可以轻松比较玩家的分数并做出可靠的排名。
【问题讨论】:
-
你为什么用ArrayList?用HashMap代替它,它就像键值对例如nickname1=score1,nickname2=score2.so你对它做任何操作。排序,添加,删除。跨度>