2013-04-16 5 views
1

У меня есть функция сортировки. Я хочу вернуть два значения, и я подумал, что будет лучше, если я вернусь к vaiable и массиву. Но я не знаю, как это сделать.Возвращаемая переменная и массив из функции java

public static int[] bubbleSort(int[] allatal) 
{ 
    //En variabel för att man ska lagra info i den 
    //Tillfällig lagring. 
    int temp; 

    //Variabel för förlyttningar 
    int forFlyttningar = 0; 

    //Loopar, loopen är inte mer än storleken på arrayen 
    for(int i=0;i<allatal.length-1;i++) 
    { 
     //En till loop 
     for(int j=i+1;j<allatal.length;j++) 
     { 
      //Om talet peckaren pekar på större än det andra 
      //talet så ska programmet 
      if (allatal[i] > allatal[j]) 
      { 
       //Lagrar värdet array "i" i temp 
       temp = allatal[i]; 
       //Överför "j" till "i" 
       allatal[i] = allatal[j]; 
       //temp värdet överförs till "i" 
       allatal[j] = temp; 
       forFlyttningar++; 
      } 
     } 
    } 
    return allatal, forFlyttningar; 
} 

ответ

3

Вы не можете. Либо верните его как массив с двумя элементами, либо создайте пользовательский объект для возврата этих двух отдельных элементов.

public class Result { 
    public int forFlyttningar; 
    public int[] allatal; 

    public Result(int forFlyttningar, int[] allatal) {} 
} 

// Snip 
return new Result(forFlyttningar, allatal); 
0

В основе Java не допускается такая вещь. Тем не менее, вы можете (либо один будет делать):

  • Создайте класс обертки, который принимает массив и целое число. В вашем методе создайте экземпляр этого класса-оболочки с любыми значениями, которые вы хотите вернуть, и получите это.
  • Посмотрите на класс Apache Tuple.
  • Вы должны иметь возможность изменять структуру массива с помощью самого метода без необходимости его возврата. Вы можете использовать это в своих интересах и иметь метод, который должен только вернуть значение 1. Взгляните на this предыдущий SO сообщение для получения дополнительной информации.
1

вы можете использовать либо объект, чтобы сохранить массив и значение, или вы можете вернуться вектор содержит как массив и значение, , но лучшие практики является использование объекта

Смежные вопросы