2017-02-21 21 views
-3

Редактировать: Мне нужно сделать следующее с массивом: сортировать, находить минимум, находить максимум, находить среднее.Java int Array: Найти Average, Min/Max, Sort

1) Как правильно получить доступ к методам в другой класс 2) Какие переменные мне нужно инициализировать для того, чтобы мои методы работы (так как я получил примеры из Google)

Я ve попытался найти примеры того, как работать с числами в массиве, но мне трудно понять, что код работает с разными именами переменных и в значительной степени неорганизован и не комментируется.

Это то, что я до сих пор в моем классе методы:

//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; 
    } 
} 

Любая помощь была бы принята с благодарностью.

+0

Попробуйте задать более конкретный вопрос. Я бы порекомендовал ** bold ** его и положил его первым –

+2

Что вы думаете? Задайте один целенаправленный вопрос. Если у вас несколько, отправьте несколько вопросов. Мы не можем помочь вам с каждой частью вашего задания здесь, это слишком широко. –

+0

Легко с downvotes, dang. Отредактировано сообщение. – Pachyderm

ответ

0

Если вы используете Java 8+, ознакомьтесь с функционалом streams и, в частности, IntStream.

Для примера, в мин/макс/среднее:

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

и сортировать:

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

Но кто-то приземляющийся здесь может после поиска сортировки массивов, возможно, не выполняет домашнюю работу. –

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() не имеет реального использования, видя, что ваш номер переменной является глобальным, чтобы начать с.

Если вам нужна дополнительная помощь, вам придется придумать реальный вопрос.