2013-04-16 141 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

,你可以使用一个对象来保存阵列和值,也可以返回 载体既包含数组和值, 但最佳做法是使用对象