需要Java数组帮助使用scanner类来输出平均值和排序方法

几个小时后,我没有在制作输出平均值的方法上取得进展。 我还需要编写一个排序类。 总的来说,任务需要。

制定方法:

  • ‘main’方法打印数组
  • 对数组进行排序
  • 确定最高值
  • 确定最低值
  • 计算平均值(双倍)

import java.util.Scanner; public class Arrayassignment { public static void main(String[] args) { Scanner sin=new Scanner(System.in); System.out.println("Enter an intiger for array size."); int number= sin.nextInt(); int array[]=new int[number]; System.out.println("Array size " + number + " initiated.\n"); System.out.println("Now enter the array intigers"); for (int i = 0; i < number; i++) { array[i]=sin.nextInt(); } System.out.println ("The highest number in the array is " + max (array) ); System.out.println ("The smallest number in the array is " + min (array) ); //System.out.println ("The average of the numbers in the array is " ; } public static int max ( int ... arg ) { if ( arg.length == 0) { System.out.println(" empty arguement list ") ; return 0; } int largest = arg [0]; for (int i = 1; i  largest) largest = arg[i]; } return largest; } public static int min ( int ... arg ) { if ( arg.length == 0) { System.out.println(" empty arguement list ") ; return 0; } int smallest = arg [0]; for (int i = 1; i < arg.length; i++ ) { if (arg [i] < smallest) smallest = arg[i]; } return smallest; 

 int sum = 0; for (int d : arg ) sum += d; double average = 1.0d * sum / arg .length; 

这将帮助您找到平均值…

要对find min和max进行排序,可以使用TreeSet集合类。 如果您使用的是原始类型或包装类,则在这种情况下无需添加任何比较逻辑。 否则你需要实施比较或类似的方法。 以下是最小和最大数据的TreeSet示例http://www.programcreek.com/2009/02/a-simple-treeset-example/ 。 为了计算平均值,我建议您可以使用局部变量,并且每次向TreeSet添加数字时都可以更新平均值。 例如,当您将新数字p添加到当前平均值v时,将最新平均值计算为v =(v * size + p)/ ++ size;

在Java 8+中,您可以使用IntStreamIntSummaryStatistics

 int[] arr = { 3, 1, 2 }; IntSummaryStatistics stats = IntStream.of(arr).summaryStatistics(); System.out.printf("Min: %d, Max: %d, Average: %.2f%n", // stats.getMin(), stats.getMax(), stats.getAverage()); IntStream.of(arr).sorted().forEach(System.out::println);