Java 查找arraylist元素时的语法

Java 查找arraylist元素时的语法,java,arraylist,syntax,Java,Arraylist,Syntax,好的,我有一个fillhand方法,应该是从洗牌组中获得牌,然后通过top方法一张一张地添加牌,同时也按套装排序。top方法将索引为0的shuffledDeck处的卡保存为变量,删除索引为0的卡,然后返回该卡。所以我添加了第一张牌,然后它假设检查top返回的下一张牌是否属于不同的套装,如果是,则将其添加到阵列列表中,如果是相同的套装,则将其添加到阵列列表中,但按照套装中的等级顺序。到目前为止,应该检查手阵列是否包含即将到来的卡的suit==false的地方不起作用 public Arra

好的,我有一个fillhand方法,应该是从洗牌组中获得牌,然后通过top方法一张一张地添加牌,同时也按套装排序。top方法将索引为0的shuffledDeck处的卡保存为变量,删除索引为0的卡,然后返回该卡。所以我添加了第一张牌,然后它假设检查top返回的下一张牌是否属于不同的套装,如果是,则将其添加到阵列列表中,如果是相同的套装,则将其添加到阵列列表中,但按照套装中的等级顺序。到目前为止,应该检查手阵列是否包含即将到来的卡的suit==false的地方不起作用

    public ArrayList fillHand(ArrayList Array, int handSize)
{
    ArrayList<Card> shuffledDeck = Array;                                       

    handArray.add(deck.top(shuffledDeck));                                        

    for (int i = 0; i < handSize + 1; i++)
    {
        if (handArray.contains(shuffledDeck.get(i).getSuit()) == false)
        {
            handArray.add(deck.top(shuffledDeck));  
        }
    }
     return handArray; 
}
public ArrayList fillHand(ArrayList数组,int-handSize)
{
ArrayList shuffledDeck=数组;
添加(deck.top(shuffledDeck));
对于(int i=0;i
因为您没有发布任何代码,所以我假设Deck是一个具有两个属性(等级和套装)的类

您需要为该类创建一个方法,使其能够打印自身(即“黑桃王牌”或“红桃杰克”) 您还需要一个返回西装的方法

从那里,您迭代您的arraylist,并在满足要求的每个节点上调用该方法

编辑,因为代码已发布:

逻辑本身似乎是有缺陷的,您正在迭代handSize,检查西装编号是否在handArray中。这是一个主要问题,因为handArray是卡的数组,而不是int的数组

有多种方法可以解决此问题,简单的方法有:

最简单:手动迭代handArray,检查套装是否与卡的任何一个匹配

更快:创建一个大小为4的数组,所有值都初始化为false,表示数组中是否有西装

既然已经处理了if语句,我们必须修复它的代码。到目前为止,您正在检查i套装是否在阵列中,并将top卡添加到阵列中

这里最好的做法是放弃for循环,代之以如下内容:

while(ArrayList.size()){
    /* code */
}

由于top的工作方式,这将循环数组,因为它移除了top卡

发布代码而不是描述它,并添加预期和实际输出。请查看Java 8流,然后发布一些代码,描述遇到的特定问题。这里有一篇好文章让你开始:不清楚。你能准确点吗?你只需要在数组上循环,验证card.getSuit()==值,并调用card上的printing方法(如果有效),我不知道它是否会产生影响,但我已经发布了我的代码。我编辑了答案,我建议遵循更简单的操作过程,以及while循环,因为另一种方法是从最后一个解析到第一个,根据我的经验,这要麻烦得多