Java:初始化一个新的 LinkedList 集合

标签 java collections linked-list

我正在尝试构建一个简单的纸牌游戏作为个人练习。我有一个Cards集合,其中应该包含我的套牌。为了初始化它,我想向它传递一张牌组应该是什么样子的 map - 一个整数数组(1到n,1到2),其中(n,1)包含在卡牌类中解析的卡牌类型,以及(n, 2) 包含我想要在牌组中输入的卡片数量。但是,我在处理 NullPointer 异常时遇到了困难。这是我的 Cards 类:

import java.util.LinkedList;

public class Cards{
    private LinkedList<Card> CardDeck;

  ...

    public boolean MakeDeck(int[][] DeckMap){
        /*feed the function a 2D int array (0 to n, 0 to 1)

        @Param - DeckMap[][] - [n][0] to contain card type
        [n][1] to contain DupeCount*/

        //search the array for duplicates
        for (int i = 0; i < DeckMap.length; i++){
            int hold = DeckMap[i][0];
            DeckMap[i][0] = -10;
            for (int j = 0; j< DeckMap.length; j++){        
                if (DeckMap[j][0] == hold){
                    DeckMap[i][0] = hold;
                    return false;
                }       
            }
            DeckMap[i][0] = hold;
        }

        //Add the cards
        // tried variations on this: CardDeck = new LinkedList<Card>;
        for (int i = 0; i< DeckMap.length; i++){
            Card cC = new Card();
            cC.initializeCard(DeckMap[i][0], DeckMap[i][1]);
            CardDeck.addLast(cC);
        }
        return true;


    }
}

空指针错误发生在cC.addLast行 - 由于我已经初始化了Card类,空指针应该引用CardDeck > LinkedList 我想将 Card 添加到其中。但我不知道如何初始化列表。或者是 .initializeCard 调用问题(下面的代码)?预先感谢您的帮助,如果我错过了一些明显的事情,请深表歉意。

错误:

java.lang.NullPointerException 在 towergame.Cards.MakeDeck(Cards.java:75)

  public class Card {

        private static String cName;
        private static int cDuplicateCount;
        public static cEffect myEffects;

        public final void initializeCard(int inEffect, int DupeCount){
            myEffects = new cEffect();
            myEffects.setEffect(inEffect);
            cName = myEffects.getCardType();
            cDuplicateCount = DupeCount;
        }
     ...
   }

最佳答案

而不是这个 private LinkedList<Card> CardDeck;

使用这个private LinkedList<Card> CardDeck = new LinkedList<Card>();

它抛出 NPE 因为 cardDeck尚未初始化。

关于Java:初始化一个新的 LinkedList 集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22595006/

相关文章:

带有 SSL 和 Postman 的 java.nio.channels.ClosedChannelException

java - 如何实现 Idempiere 版本 5.1

java - 在 map 中存储对象的正确用法

c - 为什么当我尝试编辑此链接列表时出现段错误

c++ - 链表 - 使用后指针在末尾插入

java - Play Framework 2 - 如何在不调用 .get() 的情况下等待多个 WS 响应?

java - 我正在寻找一个类似包含的可迭代方法

c# - 如何将 Array.Sort 应用于 Collection<T>?

java - 集合的 "toArray"是确定性的吗?

c++ - 查找链表的 "Nth node from the end"