我有一个x ArrayList
x个对象,并且希望有一个方法接受ArrayList并生成大小为ArrayLists
的新x-2
,它代表了对象的所有组合。原ArrayList
。
例如,如果我有一个大小为7的ArrayList
,我将调用此方法,它将创建包含新大小约束的原始ArrayList
中方法的所有可能组合的ArrayLists。
我知道需要一个循环,但我遇到了逻辑问题。谢谢
这是我到目前为止所做的:
for (Card playerCard: playerHand) {
ArrayList<Card> FiveCHand = new ArrayList<Card>();
FiveCHand.add(playerCard);
for (Card communityCard: communityHand) {
FiveCHand.add(communityCard);
}
Collections.sort(FiveCHand, CardDomainModel.CardRank);
Hand hand = new Hand(FiveCHand);
FiveCardHands.add(hand);
}
答案 0 :(得分:0)
感谢您的代码;它提出了一个更好的问题。
如果您允许我,我想提供一些反馈意见,以便让您自己发布解决方案。为此,我们需要所有相关代码。
如果您可以添加足够的代码我们需要制作complete verifiable example,那么我们确切地知道要改变什么。如果您不知道如何解决问题,那么知道要发布的代码部分可能很难。
您的代码可以使用一些重构;你从不使用迭代变量playerHand
的事实指出了这一点。所以,这里有一些问题和建议,内容为评论:
// This is enough to make into a separate function. What would it's signature be?
// Also, what Class is this in?
for (Card playerCard: playerHand) { // playerhand not used!
ArrayList<Card> FiveCHand = new ArrayList<Card>(); // better: fiveCHand
FiveCHand.add(playerCard); // playerCard? where from?
for (Card communityCard: communityHand) { // there is Collections.addAll()
FiveCHand.add(communityCard);
}
Collections.sort(FiveCHand, CardDomainModel.CardRank);
Hand hand = new Hand(FiveCHand); // Why doesn't Hand take care of card list?
FiveCardHands.add(hand);
}