我想将一个特定值从数组列表移动到另一个数组列表,这样做的最佳方法是什么?以下是一些示例代码:
来自的值
ArrayList<CreateCard> deckArray = new ArrayList<CreateCard>();
到
ArrayList<CreateCard> playerHand = new ArrayList<CreateCard>();
答案 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
以避免混淆。DeckArray
到deckArray
。deckOfCards
,而不是deckArray
,因为deckArray
可以作为一组甲板进行互穿。ArrayList
。最后的实际问题。
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)
}
希望它有所帮助。