gpt4 book ai didi

java - 如何根据属性值从 Set 中删除元素?

转载 作者:行者123 更新时间:2023-12-02 02:31:49 25 4
gpt4 key购买 nike

我有一个静态List<Set<Cards>>类(class)中的所有卡片。卡对象有 2 个变量,即 Stringsuit 和 int value。我正在创建一组 52 张卡,并在上面的静态参数中初始化 8 个这样的组的列表。

我从列表中选择一组,并从该组中删除一张卡。现在,如果我检查列表以查看它是否已被删除,它并不反射(reflect)我的卡片对象已从集合中删除。

如何从我的 List<Set<Cards>> 中删除卡片变量,以便当我在其他地方使用该变量时它反射(reflect)这些更改。

public class Test {
static Shoe shoe = new Shoe();
static List < Set < Card >> listofdecks;

public static void main(String[] args) {
int count = 0;
listofdecks = new ArrayList < > (shoe.getDecklist());

for (Set < Card > cards: listofdecks)
for (Card c: cards)
count++;
System.out.println(count);

listofdecks.get(0).remove(0);

count = 0;
for (Set < Card > cards: listofdecks)
for (Card c: cards)
count++;

System.out.println(count);

}
}

 

public class Shoe {


private static Deck deck;
private static List < Set < Card >> decklist;


public Shoe() {
setDecklist();
}
public static void setDecklist(List < Set < Card >> decklist) {
Shoe.decklist = decklist;
}

public static Deck getDeck() {
return deck;
}

public static void setDeck(Deck deck) {
Shoe.deck = deck;
}

public static List < Set < Card >> getDecklist() {
return decklist;
}

public static void setDecklist() {
decklist = new ArrayList < > ();
deck = new Deck();
for (int i = 0; i < 8; i++)
decklist.add(Deck.getNewDeck());
}

}

最佳答案

当您使用listofdecks.get(0).remove(0);时是来电boolean remove(Object o);来自Set<>界面。这意味着您尝试删除 Integer来自 Card 的集合s。这就是为什么什么也没有发生。

关于java - 如何根据属性值从 Set 中删除元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46978489/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com