Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 方法查找该数字在数组中出现的频率,并将每个数字复制到列表中_Java_Methods - Fatal编程技术网

Java 方法查找该数字在数组中出现的频率,并将每个数字复制到列表中

Java 方法查找该数字在数组中出现的频率,并将每个数字复制到列表中,java,methods,Java,Methods,我正在为我的arrayList创建一个方法,即maxArray 我整晚都在想这个问题,但似乎找不到解决办法。这是我到目前为止做这件事的代码 我遇到的问题是,它说,int不能转换为ArrayList,起初我认为我所做的是正确的,但在这件事进行到一半时,我会出错 MaxArray方法: public ArrayList<Integer> maxArray(int[] array) { ArrayList<Integer> arr = new ArrayL

我正在为我的arrayList创建一个方法,即maxArray

我整晚都在想这个问题,但似乎找不到解决办法。这是我到目前为止做这件事的代码

我遇到的问题是,它说,
int不能转换为ArrayList
,起初我认为我所做的是正确的,但在这件事进行到一半时,我会出错

MaxArray方法:

public ArrayList<Integer> maxArray(int[] array) {
           ArrayList<Integer> arr = new ArrayList<>();
           int max = arr.get(findMax(array));
            
           for (int i = 1; i < arr.size(); i++) {
               if (arr.get(i) > max) {
               max = arr.get(i);
       }
    
       return max;
   }
让你对我正在做的事情有更多的了解。该方法的说明如下:

给我的指令是maxArray,将用作: 跟踪给定数组中出现的每个最大数

  • 返回一个ArrayList,其中包含每次出现的最大值
  • 使用findMax(int[]数组)方法
  • 如果数组为空,则返回null

在上面的方法中,您将返回值定义为ArrayList,但在循环中,您使用的是get方法,该方法返回单个元素,并使用它设置max。此变量max是您返回的值。如果要将其作为ArrayList返回,则需要声明一个,将元素添加到其中并返回该值而不是最大值。

在上面的方法中,您将返回值定义为ArrayList,但在循环中,您使用的是get方法,该方法返回单个元素,并使用它设置最大值。此变量max是您返回的值。如果要将其作为ArrayList返回,则需要声明一个,将元素添加到其中并返回此值,而不是最大值。

因此您需要(1)查找整数数组的最大值,并(2)返回一个数组列表,其中包含与原始数组中相同数量的最大元素

像这样的方法应该会奏效:

public ArrayList<Integer> maxArray(int[] array) {
    if (array.length == 0) {
        return null;
    }
    ArrayList<Integer> arr = new ArrayList<>();
    int max = findMax(array);
    for (int item : array) {
        if (item == max) {
            arr.add(item);
        }
    }
    return arr;
}
public ArrayList maxArray(int[]数组){
如果(array.length==0){
返回null;
}
ArrayList arr=新的ArrayList();
int max=findMax(数组);
for(int项:数组){
如果(项目==最大值){
arr.add(项目);
}
}
返回arr;
}
因此您希望(1)找到整数数组的最大值,并(2)返回一个数组列表,该列表包含与原始数组中相同数量的最大元素

像这样的方法应该会奏效:

public ArrayList<Integer> maxArray(int[] array) {
    if (array.length == 0) {
        return null;
    }
    ArrayList<Integer> arr = new ArrayList<>();
    int max = findMax(array);
    for (int item : array) {
        if (item == max) {
            arr.add(item);
        }
    }
    return arr;
}
public ArrayList maxArray(int[]数组){
如果(array.length==0){
返回null;
}
ArrayList arr=新的ArrayList();
int max=findMax(数组);
for(int项:数组){
如果(项目==最大值){
arr.add(项目);
}
}
返回arr;
}

您正在返回一个int变量
max
,但您的函数希望返回一个
ArrayList
。我希望此代码在尝试从空数组获取元素时引发异常。你确定这就是你正在运行的代码吗?是的,它引发了一个异常,我似乎不明白如何获取所需的值。您正在返回一个int变量
max
,但您的函数希望返回一个
ArrayList
。我希望这段代码在尝试从空数组获取元素时引发异常。你确定这就是你正在运行的代码吗?是的,它引发了一个异常,我似乎不知道如何获得我需要的值