在同一个类的对象内迭代相同的方法

时间:2017-12-07 16:59:12

标签: java windows iteration greenfoot

我正在使用greenfoot并且我正在尝试迭代某些内容以使其更干净。 cardsPile列表是弃牌堆中的当前牌。我正在尝试更加面向对象,并且正在努力解决如何向ArrayList添加多个问题。我也试图在Card对象中调用方法。 我试图让以下过程可迭代。

 card1.setLocation(100,200);
 cpu2.setLocation(100,200);
 card2.setLocation(100,200);
 cpu3.setLocation(100,200);

由于card1等在上面定义如下:

 Card card1 = cards.get(1);
 Card card2 = cards.get(2);
 Card card3 = cards.get(3);
 Card card4 = cards.get(4);
 Card cpu1 = cpuCards.get(1);
 Card cpu2 = cpuCards.get(2);
 Card cpu3 = cpuCards.get(3);
 Card cpu4 = cpuCards.get(4);

我也试图通过按对象添加它们将它们添加到cardPile ArrayList中,如下所示

 cardsPile.add(curCard);
 cardsPile.add(card1);
 cardsPile.add(card2);
 cardsPile.add(card3);
 cardsPile.add(card4);
 cardsPile.add(cpu1);
 cardsPile.add(cpu2);
 cardsPile.add(cpu3);
 cardsPile.add(cpu4);

有关如何迭代Card对象的调用方法的任何想法都值得赞赏。谢谢!

1 个答案:

答案 0 :(得分:0)

要遍历所有变量,您应该将它们存储在数组或某种集合中,如下所示:

see here

    ArrayList<Card> alCard = new ArrayList<Card>();
    for(int cardIdx = 1; cardIdx <= 4; cardIdx++) {
        alCard.add(cards.get(cardIdx));
    }
    ArrayList<Card> alCpu = new ArrayList<Card>();
    for(int cardIdx = 1; cardIdx <= 4; cardIdx++) {
        alCpu.add(cards.get(cardIdx));
    }

    ArrayList<Card> cardsPile = new ArrayList<Card>();
    cardsPile.add(curCard);
    for(int cardIdx = 0; cardIdx < alCard.size(); cardIdx++) {
        cardsPile.add(alCard.get(cardIdx));
    }
    for(int cardIdx = 0; cardIdx < alCpu.size(); cardIdx++) {
        cardsPile.add(alCpu.get(cardIdx));
    }
相关问题