从函数java返回变量和数组

时间:2013-04-16 11:31:31

标签: java function sorting return

我有一个排序功能。我想返回两个值,我认为如果我返回vaiable和array会更好。但我不知道该怎么做。

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 个答案:

答案 0 :(得分:3)

你做不到。将其作为包含两个元素的数组返回,或者创建一个自定义对象以返回这两个特定元素。

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

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

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

答案 1 :(得分:1)

您可以使用对象来保存数组和值,也可以返回 vector包含数组和值, 但最佳做法是使用对象

答案 2 :(得分:0)

Java框架不允许这样的事情。但是,您可以(任何一方都可以):

  • 创建一个包装类,它接受一个数组和整数。在您的方法中,使用您想要返回的任何值创建此包装类的实例并将其生成。
  • 看一下Apache的Tuple课程。
  • 您应该能够通过方法本身修改数组的结构,而无需返回它。你可以利用这个优势,并拥有一个只需要返回1个值的方法。请查看以前的this SO帖子以获取更多信息。