如何从数组中返回特定的int值;如何制作一个测试类?

时间:2016-01-16 20:12:16

标签: java arrays

我开始编写uni的作业编码,但过了一会儿,我就陷入了困境。

public class MostCommonElemnt
{
    //private int[] liste;
    public MostCommonElemnt()
    {
        //int[] liste = {1,2,3,4,5,6,7,8,9};
    }

在构造函数中初始化数组是不是很糟糕,还是只是没有必要?

    public int findMostCommonElemnt(int[] list)
    {
        int help = 0; 
        for(int i = 0; i < liste.length; i++)
        {
            help = list[i];

        }
        return help; 
    }

这里我试图获取从我的int数组返回的特定int值(或数字),但“help”只返回int数组中的最后一个数字。我如何获得第二或第四?要查看所有这些,我可以使用System.out.println();

    public static void main (int[] args)
    {
        //int[] liste = {1,2,3,4,5,6,7,8,9};
        System.out.println(new MostCommonElemnt().findMostCommonElemnt(int[] list));
    }
}

在本节中,我试图制作一个testMethod但是,我无法让它工作, BlueJ(我们必须将它用于大学)总是抱怨某事。

后我特别不知道该怎么做
    new MostCommonElemnt().

我只是想,程序采取特定的数字,我想测试。例如:{1,2,3,4,5,6,7 ...} 否则我总是要输入它们,这会很快。

2 个答案:

答案 0 :(得分:0)

这可能会更短,但确实有效。

public static int findMostCommonElement(int[] list) {
    int max = 0;
    for (int i : list)
        if (i > max)
            max = i;
    int[] newArr = new int[max];
    for (int i = 0; i < max; i++)
        newArr[i] = 0;
    for (int i = 0; i < max; i++)
        newArr[list[i]] += 1;
    int mostCommon = 0;
    int mostCommonMax = 0;
    for (int i = 0; i < max; i++)
        if (newArr[i] > mostCommonMax) {
            mostCommonMax = newArr[i];
            mostCommon = i;
        }
    return mostCommon;
}

答案 1 :(得分:0)

要将固定值传递给您的方法,您可以使用:

int[] liste = {1,2,3,4,5,6,7,8,9};
System.out.println(new MostCommonElemnt().findMostCommonElemnt(liste));

您可以使用return list[1];方法中的findMostCommonElemnt返回数组的第二个值,但这可能不是该方法应该做的。