在循环中创建对象

时间:2015-10-28 00:37:07

标签: java arrays loops object

我正在用Java创建一个简单的扑克游戏,它将创建一副牌,让你画一只手,展示你拥有的那种套装。这是我到目前为止遇到的问题。

我有3个不同的阵列列表,一个用于卡片值,一个用于卡片套装,一个用于在卡片套装和值应用后保持实际的卡片对象。我创建了一个循环,它应该为每个值添加一个套装(13个值)并将它们添加到newCards ArrayList中(它是CARD类型,我有一个不同的类,允许对象同时具有整数和字符串) 。在我尝试打印出newCards以查看它是否正常工作之后。我收到了一些例外错误。

我不确定如何有效地创建这样的循环,所以任何帮助都会受到赞赏。

import java.util.*;
public class pokerMain {

    public static void main (String [] args){
        ArrayList<String> suits = new ArrayList<String>();//array list for the card suits
        ArrayList<Integer> val = new ArrayList<Integer>();//array list for card values
        ArrayList<CARDS> newCards = new ArrayList<CARDS>();//array list for cards with assigned val/suits

        suits.add("Clubs");//These are the suits, added to the suits ArrayList
        suits.add("Hearts");
        suits.add("Diamonds");
        suits.add("Spades");

        System.out.println("suits contains: " + suits );//Testing for suit

        for(int i = 1; i <= 13; i ++){//loop that adds all 13 values to to the val ArrayList
            val.add(i);
        }

        System.out.println("val contains " + val);//Testing for val

这是循环

    for(int i = 0; i <= val.size(); i ++){//This loop will be used to add a suit to every card value

        newCards.add(new CARDS(suits.get(0), val.get(i)));//assigns hearts
        newCards.add(new CARDS(suits.get(1), val.get(i)));//assigns hearts
        newCards.add(new CARDS(suits.get(2), val.get(i)));//assigns diamonds
        newCards.add(new CARDS(suits.get(3), val.get(i)));//assigns spades
    }
-------------------------------------------------------------------------   
    System.out.println(newCards.toString());//prints newCards arrayList

    //newCards.add(card);// puts card object into array list newCards

2 个答案:

答案 0 :(得分:1)

为防止代码重复,您可以尝试两个循环并使用每个

for(String s : suits) {
    for(Integer i : val) {
        newCards.add(new CARDS(s, i));
    }
}

答案 1 :(得分:0)

首先,正如John Mercier所说,因为:每个人都可以去这里。

其次,这并不会导致您的问题,但CARDS并不完全是传统的类名。卡片或卡片之类的东西(或将卡片包装在甲板课程中......)。

第三,最重要的是,就我所知,main()似乎不是你的问题。检查你的CARDS课程。