Java 如何增加对象列表中的整数字段

Java 如何增加对象列表中的整数字段,java,Java,好的,我有一个列表,其中你的班级是: public class HighscoreEntry { private List<String> users; private int score; HighscoreEntry(List<String> users, int score) { this.users = users; this.score = score; } public List<

好的,我有一个
列表
,其中你的班级是:

public class HighscoreEntry {
    private List<String> users;
    private int score;

    HighscoreEntry(List<String> users, int score) {
        this.users = users;
        this.score = score;
    }

    public List<String> getUsers() {
        return users;
    }

    public void setUsers(List<String> users) {
        this.users = users;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
}
这个,返回这个错误:

java.lang.ClassCastException: java.util.stream.ReferencePipeline$2 cannot be cast to com.heraproject.wired.data.ScoreboardItemData$HighscoreEntry
at com.heraproject.wired.data.ScoreboardItemData.addEntry(ScoreboardItemData.java:45)

如果我理解正确的话,你所需要的就是这样的东西

    // int index, someInt;
    this.entries.get(index).setScore(someInt);
然而,看看你的模型,我认为“高分”应该通过迭代潜在的
用户
对象列表来计算,每个对象都有自己独特的分数。然后在用户上设置分数,而不是在持有用户列表的实体上设置分数

使用这种方法

public void updateEntry(List<String> users, int index) {
    synchronized (this.entries) {
        HighscoreEntry highScoreEntry = this.entries.get(index);

        highscoreEntry.setScore(//Update score);
        entries.add(index, highscoreEntry);

    }
} 
public void updateEntry(列出用户,int索引){
已同步(此.entries){
HighscoreEntry HighscoreEntry=this.entries.get(索引);
highscoreEntry.setScore(//更新分数);
条目。添加(索引、高分条目);
}
} 

您需要根据标识符在列表中找到正确的项目,并查看HighscoreEntry,该标识符是
用户
。此代码将更新列表项中HighscoreEntry(如果存在)的分数

public void addScore(List<String> users, int score) {
    HighscoreEntry entry = entries.filter( e -> (e.getUsers().equals(users))).findFirst().orElse(null);
    if (entry != null) {
        entry.setScore(score);
    } 
}
public void addScore(列出用户,整数分数){
HighscoreEntry=entries.filter(e->(e.getUsers().equals(users))).findFirst().orElse(null);
if(条目!=null){
条目。设置核心(分数);
} 
}

@AntoineB问题是:我已经尝试使用replaceAll、set和其他工具来更改现有数据,但没有一个有用!显示您的尝试,我似乎无法理解您的要求。@a我添加了一些我使用过但未成功的示例是的,他的示例实际上是我想要的,但它对我无效,因为在
(entry->(entry.getUsers().equals(users))
中,条目返回错误:“变量“entry”已在范围中定义“但你知道我真正想要的是什么。并试图更改变量,但没有更改work@RaphaLeão,我犯了这个错误,但之前忘了更新我的答案。现在已修复。是,但将更新所有条目,我想更新确定的用户分数我尝试了你们提供给我的解决方案,但没有一个是正确的解决方案如果你想这样,请使用条目与ArrayList循环查找所需项并更新分数是,要执行此“索引”,我需要为(int i=0;i,但仍然不起作用现在还不清楚你在循环中做了什么,或者你在哪里/什么时候查看更新的记分板我将在主帖子上放一个代码示例,以避免这里混乱xD
    // int index, someInt;
    this.entries.get(index).setScore(someInt);
public void updateEntry(List<String> users, int index) {
    synchronized (this.entries) {
        HighscoreEntry highScoreEntry = this.entries.get(index);

        highscoreEntry.setScore(//Update score);
        entries.add(index, highscoreEntry);

    }
} 
public void addScore(List<String> users, int score) {
    HighscoreEntry entry = entries.filter( e -> (e.getUsers().equals(users))).findFirst().orElse(null);
    if (entry != null) {
        entry.setScore(score);
    } 
}