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

Java 如何将值从一个ArrayList移动到另一个ArrayList,java,arraylist,Java,Arraylist,我想将一个特定的值从一个数组列表移动到另一个数组列表,最好的方法是什么?下面是一些示例代码: 价值来自 ArrayList<CreateCard> deckArray = new ArrayList<CreateCard>(); ArrayList deckArray=new ArrayList(); 到 ArrayList playerHand=new ArrayList(); 如果您拥有CreateCard存储在DeckArray中的索引i,您只需执行以下操作:

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

价值来自

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

ArrayList playerHand=new ArrayList();

如果您拥有CreateCard存储在DeckArray中的索引i,您只需执行以下操作:

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

我非常喜欢助手函数:

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));
}
publicstaticvoidmain(字符串[]args){
ArrayList deckArray=新的ArrayList();
deckArray.add(新的CreateCard());
deckArray.add(新的CreateCard());
ArrayList playerHand=新的ArrayList();
//发牌
moveASpecificValue(deckArray,playerHand,0);
//从甲板底部开始交易
moveASpecificValue(deckArray、playerHand、deckArray.size()-1);
}
公共静态无效MoveAspecicValue(列表源,
列出目的地,
int indexOfSpecificValue){
destination.add(source.remove(indexOfSpecificValue));
}

仅用于循环遍历要从中获取值的ArrayList,当找到正确的索引或条件时,只需将值放入其他数组列表中即可

先做一些事情

  • CreateCard
    是一个表示什么的类?如果它只是表示一张卡,那么我会将该类命名为
    card
    ,以避免混淆
  • java中的变量(与方法一样)通常以小写形式命名,意思是
    DeckArray
    DeckArray
  • 我建议将其命名为
    deckOfCards
    而不是
    deckArray
    ,因为
    deckArray
    可以作为一个甲板数组进行互穿
  • 您的阵列是否可以包含重复的甲板?你是不是在玩更多的一副牌?如果不是所有的成员都是唯一的。如果是这样,我建议改用或
    ArrayList
最后是实际问题

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

这将移除最上面的卡并将其添加到PlayerHand中。

我将执行以下功能:

public void moveCard(List<CreateCard> playerHand, List<CreateCard> deckArray) {

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

}
public void moveCard(列表playerHand,列表deckArray){
playerHand.add(deckArray.get[0])
deckArray.remove(0)
}

希望有帮助。

将对象从第一个列表中移除,然后添加到第二个列表中……基本上,我正在尝试将一张牌从牌组顶部移动到玩家的手上(这样它将完全从牌组中移除它,然后将其移动到玩家的手上)。您不能使用
ArrayList.Remove(对象o)
如果找到对象,则返回
true
;如果未找到对象,则返回
false
。但是,您可以按索引删除。不过,我建议用三行文字来写。很抱歉,我也注意到了这一点,并对其进行了编辑。如果您只是尝试移除顶卡,DeckArray.remove(0)是否有效?如果要这样做,使用随机访问集合有什么意义?
public void moveCard(List<CreateCard> playerHand, List<CreateCard> deckArray) {

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

}