Java int Array:查找平均值,最小值/最大值,排序

时间:2017-02-21 03:43:58

标签: java arrays sorting max average

编辑:我需要对数组执行以下操作:sort,find minimum,find maximum,find the average。

1)如何正确访问其他类中的方法2)为了使我的方法有效,我需要初始化哪些变量(因为我从Google获得了示例)

我试图找到如何使用数组中的数字的示例,但我发现很难弄清楚代码是使用不同的变量名称而且很大程度上没有组织且没有评论。

这是我到目前为止在我的方法类中所拥有的:

//Grades Array
int[] score = {70,90,80,85,65,55,100,70,40,77,66,55,44};
int number;

//Get
public int getNumber(){
    return number;
}

//Average Grade
public static double average(int[] score, int number)
{
    double average = 0;
    if (score.length > 0)
    {
        average = number / score.length;
    }
    return average;
}

这是我的主要课程:

public class Main {
    public static void main(String[] args) {
        //Average Method
        OtherMethods average = new OtherMethods();
        int[] number = null;
        OtherMethods.average(number, 0);
        System.out.println(number);
    }
}

所以你可以看到我到处都是。这很大程度上是我试图应用的例子。

这是我正在使用的排序代码。当然,将我的变量粘贴到这里使用的变量是有利的,但我不知道从哪里开始。

//Ascending Sort Method
public static void sort(int[] score, int number)
{
    for(i=0; i < num-1; i++) //For each sublist
    {
        min = list[i];
        position = i;

        for (j=i+1; j < num; j++)   //Find minimum
        {
            if (list[j] < min)
            {
                min = list[j];
                position = j;
            }
        }
        temp = list[position];      //Swap
        list[position] = list[i];
        list[i] = temp;
    }
}

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

如果您使用的是Java 8+,请查看功能streams,特别是IntStream

例如,min / max / average:

int min = IntStream.of(score)
                   .min(); // or .max() or .average()

并排序:

score = IntStream.of(score)
                 .sorted()
                 .toArray();

答案 1 :(得分:0)

如果你试图对数字进行排序,你可以做一些像冒泡排序这样简单的事情,这是相当紧凑的比较n到n + 1并切换,如果需要:

void bubbleSort(int ar[])
{
   for (int i = (ar.length - 1); i >= 0; i--)
   {
      for (int j = 1; j ≤ i; j++)
      {
         if (ar[j-1] > ar[j])
         {
              int temp = ar[j-1];
              ar[j-1] = ar[j];
              ar[j] = temp;
   } } } }

或者像您在选择排序上面所做的那样:

void selectionSort(int[] ar){
   for (int i = 0; i ‹ ar.length-1; i++)
   {
      int min = i;
      for (int j = i+1; j ‹ ar.length; j++)
            if (ar[j] ‹ ar[min]) min = j;
      int temp = ar[i];
      ar[i] = ar[min];
      ar[min] = temp;
} }

您目前使用此方法设置getNumber()函数的另一个方法是没有真正的用途,因为您的数字变量是全局的。

如果您需要更多帮助,则必须提出实际问题。