java枚举到arraylist卡片组

标签 java arraylist enums

问题:只有内存地址是arraylist的out.print。例如:Card@14318bb。

我真的希望这是一个新问题。我看了又看,又读又学,但似乎还是把这本书搞砸了!代码:

DeckMain.java

public class DeckMain {
    public static void main(String[] args) {
        List<Card> newDeck = new ArrayList<Card>( );

        Card.Rank[] ranks = Card.Rank.values();  
        Card.Suit[] suits = Card.Suit.values(); 

        for (Card.Suit suit : suits) {
            for (Card.Rank rank : ranks) {
                newDeck.add(new Card(rank, suit));
            }
        }

        int n = newDeck.size();

        for (int i = 0; i < n ; i++) {
            System.out.println((i + 1)  + ": " + newDeck.get(i));       
        }
    }
}

Card.java

public class Card {
    public enum Suit { CLUBS, DIAMONDS, HEARTS, SPADES; }

    public enum Rank { TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, 
                       NINE, TEN, JACK, QUEEN, KING, ACE; }

    final Rank rank;
    final Suit suit;

    public Card (final Rank rank, final Suit suit) {
        this.rank = rank;
        this.suit = suit;
    }
}    

最佳答案

您没有覆盖 Card 类中的 toString() 方法。因此,您使用继承自 Object 类的对象:

getClass().getName() + '@' + Integer.toHexString(hashCode())

在您的 Card 类中覆盖它:

@Override
public String toString(){
    return suit.name()+"-"+rank.name();
}

关于java枚举到arraylist卡片组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20532344/

相关文章:

JavaFX - 如何向 StackPane 添加多个元素?

Android Studio 单个 Activity 充当多个

Java 枚举扩展了解决方法

java - 具有特定名称的元素的形状食谱?

Java-如何在不扩展比较器的情况下对包含句点/点的字符串数组进行排序?

Java 使用 ArrayList 进行未经检查的方法调用

java - ArrayList容量增量方程

java - 为什么枚举不能扩展 Java 中的类?

c++ - 我可以使用枚举作为结构名称吗?

java - 我可以延迟程序的特定部分吗?