Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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_Arrays_Methods - Fatal编程技术网

Java 返回最小值和最大值

Java 返回最小值和最大值,java,arrays,methods,Java,Arrays,Methods,当用户输入Y继续程序时,我试图从随机数数组中获取最大值和最小值。我想在随机数方法中测试最小值和最大值,还是让最小值和最大值成为自己的方法 我已经尝试了研究,我已经为此工作了几个小时 package lab10p1; import java.util.*; import java.util.Random; public class Lab10p1 { public static final int ROW = 5; public static final int COL = 6; public

当用户输入Y继续程序时,我试图从随机数数组中获取最大值和最小值。我想在随机数方法中测试最小值和最大值,还是让最小值和最大值成为自己的方法

我已经尝试了研究,我已经为此工作了几个小时

package lab10p1;
import java.util.*;
import java.util.Random;


public class Lab10p1 {
public static final int ROW = 5;
public static final int COL = 6;
public static final int MIN = 0;
public static final int MAX = 100;

/**
 * @param args the command line arguments
 */
public static void main(String[] args) 

{

    Scanner scan=new Scanner(System.in);
System.out.println("Do you want to start Y/N?");
char c =scan.next().charAt(0);

while(c=='y'||c=='Y')
{

 int[][] a = new int[ROW][COL]; 
 randArray(a, ROW, COL, MIN, MAX);
 int smallest;


System.out.println(min);
c=scan.next().charAt(0);

}


}
  public static int randArray(int[][] matrix, int row, int col, int low, int up)
  {     
      Random rand = new Random(); 
       int min = matrix[0][0]; 
  for (int r = 0; r < row; r++)
  {          
   for (int c = 0; c < col; c++)   
   {       
     if(matrix[r][c] < min) {               
              min = matrix[r][c];}
      int random=matrix[r][c] = rand.nextInt(up - low + 1) + low; 
  System.out.print(" "+random); 
   }       
   System.out.println();
  }
  return min;
  }
 }    

您可以使用
Arrays.stream()
IntStream.min()
IntStream.max()

分钟

private static int arrayMin(int[][] a) {
    return Arrays.stream(a)
            .mapToInt(r -> IntStream.of(r).min().getAsInt())
            .min().getAsInt();
}
private static int arrayMax(int[][] a) {
    return Arrays.stream(a)
            .mapToInt(r -> IntStream.of(r).max().getAsInt())
            .max().getAsInt();
}
最大值

private static int arrayMin(int[][] a) {
    return Arrays.stream(a)
            .mapToInt(r -> IntStream.of(r).min().getAsInt())
            .min().getAsInt();
}
private static int arrayMax(int[][] a) {
    return Arrays.stream(a)
            .mapToInt(r -> IntStream.of(r).max().getAsInt())
            .max().getAsInt();
}

这两种方法都是查找每行的最小/最大值,并将此结果映射到另一个数组,然后获取此数组的最小/最大值。

我认为您最有可能从这个问题中得到的是人们的意见。它是否按照您当前的编程方式工作?您可以创建自己的最小/最大函数。这样做可能更容易理解。另外,看看Math.min()和Math.max()。它现在不返回任何内容。我的研究很糟糕,可能是重复的