gpt4 book ai didi

Java ArrayList 获取方法

转载 作者:行者123 更新时间:2023-11-30 03:30:55 25 4
gpt4 key购买 nike

import java.util.*;

public class Deck {
public int deckSize = 52;
public ArrayList<Card> deck1 = new ArrayList<Card>(deckSize);

public Deck() {
for (CardEnum card : CardEnum.values()) {
for (SuitEnum suit: SuitEnum.values()) {
Card newCard = new Card(card, suit);
this.deck1.add(newCard);
}
}
}

int size() { return this.deck1.size(); }

String draw() {
Iterator<Card> itrCard = deck1.iterator();

if (!itrCard.hasNext()) {
throw new IndexOutOfBoundsException("Deck is empty!");
}

Card next = itrCard.next();
String name = next.getName();
this.deck1.remove(next);
return name;
}

void shuffle() {
Collections.shuffle(this.deck1);
}

public static void main(String[] args) {
Deck deck1 = new Deck();
deck1.shuffle();

System.out.println("The first five cards drawn are:");
for (int i = 0; i<5; i++) {
System.out.print(deck1.draw() + " ");
}
System.out.println("\n");
for (int i = 0; i<5; i++) {
System.out.print(deck1.draw() + " ");
}

System.out.println(deck1.get(1));

System.out.println("\nHow many cards do you want to replace? (Max of 4)");
Scanner in = new Scanner(System.in);
int v;
v = in.nextInt();
}
//System.out.println(deck2.get(4));
}

对于这段代码,它表示 Deck 类型的 get 方法未定义?我怎样才能使 get 方法起作用?我还尝试创建一个功能来替换最多 4 张卡。我可以发旧牌,但如何保留旧牌。我还需要能够评估这手牌并判断它是什么(葫芦、对子等)。我发现这相当困难,所以即使您只能回答我的一个问题,我也将不胜感激。

最佳答案

Deck 类本身没有 get(int) 方法,但是,您尝试在 main() 方法中对 Deck 类型的对象调用此方法。为了编译此代码,您需要编写一个名为 get 的方法,该方法采用 int 作为其参数。

虽然 Deck 类有一个名为 Deck1 的内部变量,它是一个 ArrayList,但此方法的范围仅限于 Deck 类中的代码。当您在 main 中创建名为 Deck1 的 Deck 时,它与 Deck 类中定义的名为 Deck1 的 ArrayList 是不同的对象。尽管它们具有相同的名称,但它们是两个不同的对象,因此这个 Deck1 不是 ArrayList,无法访问 ArrayList 提供的方法。

关于Java ArrayList 获取方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29067238/

25 4 0