在ArrayList中为对象选择函数?

时间:2015-11-15 22:14:00

标签: java arraylist

我有一个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);
		}

1 个答案:

答案 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);
    }