如何更新 List<Class> 中的特定值?
How to update a specific value in List<Class>?
我需要更新 List<Cards>
中的一项数据。 Class 卡片看起来像这样:
public class Cards implements Comparable<Cards>{
private int cardImage, cardID, cardScore;
public Cards(int cardImage, int cardID, int cardScore){
this.cardImage = cardImage;
this.cardID = cardID;
this.cardScore = cardScore;
}
public int getImage(){
return cardImage;
}
public int getId(){
return cardID;
}
public int getScore(){return cardScore;}
@Override
public int compareTo(Cards o) {
return this.cardID > o.cardID ? 1 : (this.cardID < o.cardID ? -1 : 0);
}
在我的 MainActivity 类中,我启动了 List cardsList = new ArrayList<>();
并像这样填充它
for (i = 0; i < lvl; i++) {
cardsList.add(new Cards(Constants.imageNumber[drawCard[i]], drawId[i], cardScore[i]));
}
现在我只想更新 cardScore[i]
的值。我该怎么做?
为您的 Cards
class 创建设置器,然后您可以在使用 List#get
获取特定索引处的卡片后调用这些设置器。
public class Cards implements Comparable<Cards>{
// other methods omitted for brevity...
public void setCardScore(int cardScore){
this.cardScore = cardScore;
}
}
// Usage:
cardsList.get(i).setCardScore(newCardScore);
我需要更新 List<Cards>
中的一项数据。 Class 卡片看起来像这样:
public class Cards implements Comparable<Cards>{
private int cardImage, cardID, cardScore;
public Cards(int cardImage, int cardID, int cardScore){
this.cardImage = cardImage;
this.cardID = cardID;
this.cardScore = cardScore;
}
public int getImage(){
return cardImage;
}
public int getId(){
return cardID;
}
public int getScore(){return cardScore;}
@Override
public int compareTo(Cards o) {
return this.cardID > o.cardID ? 1 : (this.cardID < o.cardID ? -1 : 0);
}
在我的 MainActivity 类中,我启动了 List cardsList = new ArrayList<>();
并像这样填充它
for (i = 0; i < lvl; i++) {
cardsList.add(new Cards(Constants.imageNumber[drawCard[i]], drawId[i], cardScore[i]));
}
现在我只想更新 cardScore[i]
的值。我该怎么做?
为您的 Cards
class 创建设置器,然后您可以在使用 List#get
获取特定索引处的卡片后调用这些设置器。
public class Cards implements Comparable<Cards>{
// other methods omitted for brevity...
public void setCardScore(int cardScore){
this.cardScore = cardScore;
}
}
// Usage:
cardsList.get(i).setCardScore(newCardScore);