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)
}