如何将值从一个ArrayList移动​​到另一个ArrayList

时间:2015-03-24 00:38:01

标签: java arraylist

我想将一个特定值从数组列表移动到另一个数组列表,这样做的最佳方法是什么?以下是一些示例代码:

来自

ArrayList<CreateCard> deckArray = new ArrayList<CreateCard>();

ArrayList<CreateCard> playerHand = new ArrayList<CreateCard>();

5 个答案:

答案 0 :(得分:1)

我是助手功能的忠实粉丝:

public static void main(String[] args) {
    ArrayList<CreateCard> deckArray = new ArrayList<CreateCard>();
    deckArray.add(new CreateCard());
    deckArray.add(new CreateCard());

    ArrayList<CreateCard> playerHand = new ArrayList<CreateCard>();

    // Deal a card
    moveASpecificValue(deckArray, playerHand, 0);

    // Deal from the bottom of the deck
    moveASpecificValue(deckArray, playerHand, deckArray.size() - 1);
}

public static void moveASpecificValue( List<CreateCard> source, 
                                       List<CreateCard> destination, 
                                       int indexOfSpecificValue) {
    destination.add(source.remove(indexOfSpecificValue));
}

答案 1 :(得分:1)

首先是一些事情。

  • CreateCard是一个代表什么的类?如果它只代表一张卡片,那么我会将该课程命名为Card以避免混淆。
  • java中的变量(就像方法一样)通常用lowerCamelCase命名,意思是DeckArraydeckArray
  • 我建议将其命名为deckOfCards,而不是deckArray,因为deckArray可以作为一组甲板进行互穿。
  • 您的阵列可以包含重复的套牌吗?就像你在玩更多的一副牌?如果不是所有成员都是独一无二的。如果是这样,我建议改为使用HashSetArrayList

最后的实际问题。

PlayerHand.add(DeckArray.remove(0));

这将删除顶部卡并将其添加到PlayerHand。

答案 2 :(得分:0)

如果你有指数i,其中CreateCard存储在DeckArray中,你可以这样做:

PlayerHand.add(DeckArray.remove(i));

答案 3 :(得分:0)

只需循环访问要从中获取值的ArrayList,当您找到正确的索引或条件时,只需将值放在另一个数组列表中即可。

答案 4 :(得分:0)

我会做一个像:

这样的功能
public void moveCard(List<CreateCard> playerHand, List<CreateCard> deckArray) {

    playerHand.add(deckArray.get[0])
    deckArray.remove(0)

}

希望它有所帮助。