繁体   English   中英

链表 <type> 充满重复的条目

[英]LinkedList<type> filled with repeat entries

我从MySQL的一张表开始,里面充满了记分牌的玩家数据。 它具有4个具有不同名称和分数的条目。 我的代码成功检索了这些条目。 我使用此方法检索条目时对此进行了测试:

while (resultSet.next()) {
            int id = resultSet.getInt("id");
            String name = resultSet.getString("name");
            int score = resultSet.getInt("score");
            int lastScore = resultSet.getInt("lastScore");
            System.out.println("" + Integer.toString(id) + ", " + name + ", $" + Integer.toString(score) + ".");
            Scoreboard.addScore(id, name, score);

println()返回以下四行:

1, Sam, $10000.
2, Jesus, $12000.
3, Michael, $9000.
4, Asako, $4500.

addScore()看起来像这样:

    public static void addScore(int id, String name, int score){//Adds new score to scores LinkedList
        if (scores.isEmpty())
            scores.addFirst(new Player(id, name, score, 0));
        for (int i = 0; i < scores.size(); i++){
            if (score > scores.get(i).getScore()){
                scores.add(i, new Player(id, name, score, 0));
                return;
            }
        }
        scores.addLast(new Player(id, name, score, 0));
    }

最后,Player类如下所示:

public class Player {
    private static int id;
    private static String name;
    private static int score;
    private static int lastPosition;

    public Player(int id, String name, int score, int lastPosition){
        setID(id);
        setName(name);
        setScore(score);
        setLastPosition(lastPosition);
    }
//...

当我最终显示分数时,它将显示以下内容:

  1. 浅草$ 4500
  2. 浅草$ 4500
  3. 浅草$ 4500
  4. 浅草$ 4500

我的代码有什么错误可能导致这种情况吗? 另外,您是否认为有必要使用任何代码来更好地帮助您评估此问题? 我试图放入所有重要的代码。


在检索计分板时,我使用以下代码scores.get(i).setLastPosition(i+1);

那是正确的语法吗? 是否可以通过调用get来设置LinkedList中元素的一部分的值,或者这不可能吗?

您为Player类定义了4个static变量,这意味着无论您创建多少个Player实例,整个类都将定义一次。 每个新实例将覆盖值,最后一个实例Asako $4500 “获胜”。

Player的4个变量中删除static变量,以使它们对于Player类的每个实例都具有一个值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM