1

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

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

3 回答 3

3

你不能。要么将其作为包含两个元素的数组返回,要么创建一个自定义对象来返回这两个特定元素。

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

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

// Snip
return new Result(forFlyttningar, allatal);
于 2013-04-16T11:33:27.673 回答
1

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

于 2013-04-16T11:41:46.363 回答
0

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

  • 创建一个包装类,它接受一个数组和整数。在您的方法中,使用您想要返回的任何值创建此包装类的实例并产生它。
  • 看看 Apache 的Tuple类。
  • 您应该能够通过方法本身修改数组的结构,而无需返回它。您可以利用它来发挥自己的优势,并拥有一个只需要返回 1 个值的方法。查看之前的 SO 帖子以获取更多信息。
于 2013-04-16T11:36:36.187 回答