如何在方法之间正确传递数组

时间:2012-03-19 02:36:06

标签: java arrays parameter-passing

我在方法之间传递数组时遇到问题,并在下面摘录了我的代码。

我已经成功创建了两个数组computerDicehumanDice,现在我需要计算每个数组中的一个,两个,三个等的数量。请参阅下面的代码示例。我已经验证了a。)输入数组包含有效数据和b。)计数器正常工作。

然而,现在我正在尝试将occurences作为一个数组返回 - 六个不同的occurence值代表一个,两个,三个等,在数组中是SENT方法 - 并且没有成功。我一直遇到问题occurence返回...不兼容的类型,为操作数键入的坏操作数+ ...而且我尝试的每件事情都会有所不同。我显然错过了如何投射/填充这个变量的东西。

注意:这是作业;我只是想抓住我的概念性错误步骤。

// SEND VALUES TO numToFind AND CREATE SCORING ARRAY FOR computerDice AND humanDice
        for(int i=1;i<7;i++)
        {
            int[] pipCountsComputer = findVals(computerDice,i);
            int[] pipCountsHuman = findVals(humanDice,i);
            System.out.println(i + " " + pipCountsComputer + " " + pipCountsHuman);
        }
    }
//
// COUNT INSTANCES OF numToFind IN arr[] AND RETURN THE occurence
    public static int[] findVals(int[] arr, int numToFind)
    {
        int[] occurence=0;
        for (int i = 0; i < arr.length; i++)
        {
            if (arr[i] == numToFind)
                occurence = occurence+1;
        }
        return occurence;
    }

我已经验证过,例如,给定computerArray = 52334humanArray = 11163我的print语句会产生:

1 0 3(其中,电脑有0个,人有3个)
2 1 0(两个,计算机有1个,人有0个两个)
3 2 14 1 0我想要的数据集数组是:
5 1 0 pipCountsComputer{0,1,2,1,1,1}
6 0 1 pipCountsHuman{3,0,1,0,0,1}

2 个答案:

答案 0 :(得分:3)

如果我理解正确,请尝试这样计算出现次数:

public static int findVals(int[] arr, int numToFind) {
    int occurence = 0;
    for (int i = 0; i < arr.length; i++) {
        if (arr[i] == numToFind)
            occurence++;
    }
    return occurence;
}

我真的不明白为什么要返回数组,出现只是一个数字。

答案 1 :(得分:2)

因为这闻起来像家庭作业,我不会给你答案,但暗示它......

  

现在我试图将出现的数据作为数组返回

你尚未对此进行编码......再次查看方法签名

public static void findVals(int[] arr, int numToFind)