Java LinkedList<;类型>;充满重复条目

Java LinkedList<;类型>;充满重复条目,java,eclipse,linked-list,Java,Eclipse,Linked List,我从MySQL中的一个表开始,该表中填充了记分板的球员数据。它有4个不同名称和分数的条目。我的代码成功地检索了这些条目。我使用以下方法检索条目时对此进行了测试: while (resultSet.next()) { int id = resultSet.getInt("id"); String name = resultSet.getString("name"); int score = resultSet.getInt("

我从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));
    }
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);
    }
//...

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

  • 浅子4500美元
  • 浅子4500美元
  • 浅子4500美元
  • 浅子4500美元
  • 我的代码有什么问题可能导致这种情况吗?另外,您是否认为有任何代码可以更好地帮助您评估这个问题?我试着把所有重要的代码都放进去


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


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

    你的类
    Player
    定义了4个
    静态
    变量,这意味着无论你创建了多少个
    Player
    实例,它们都会为整个类定义一次。每个新实例都会覆盖这些值,最后一个实例,
    Asako$4500
    ,“wins”


    Player
    中的4个变量中删除
    static
    ,这样它们对
    Player
    类的每个实例都有一个值。

    您的类
    Player
    定义了4个
    static
    变量,这意味着它们对整个类定义了一次,无论您创建了多少个
    Player
    实例。每个新实例都会覆盖这些值,最后一个实例,
    Asako$4500
    ,“wins”


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

    非常感谢。我对Java还是很陌生。您还可以回答我关于使用
    get()
    设置值的后续问题吗。这有效吗?使用
    get(i)更新所需的
    Player
    应该没有问题。使用什么方法
    get()
    方法将返回对实际
    Player
    对象的引用,而不是副本,您可以随意使用它。非常感谢。我对Java还是很陌生。您还可以回答我关于使用
    get()
    设置值的后续问题吗。这有效吗?使用
    get(i)更新所需的
    Player
    应该没有问题。使用什么方法
    get()
    方法将返回对实际的
    Player
    对象的引用,而不是一个副本,您可以使用它执行任何操作。