所以我需要想办法将数组保存为局部变量,并在方法结束时返回它。我有点困惑,我被告知除了我自己尝试之外还有其他两个选择。我可以将数组存储为变量或使用哈希表。我想将数组保存为局部变量。
下面是我用来尝试将返回值保存为局部变量数组的方法。
private Integer[] longestLength(int col, boolean color, int row) {
// longest equals length of the longest route
// count equals number of the longest routes
// possible equals number of spots, that you can play off of.
int longest = 0;
int count = 0;
int possible = 0;
//this for loop counts to 4, the patterns of the 4 possible wins
for (int i = 1; i <= 4; i++) {
int length = lengthOfColor(col, color, i, row)[0];
//if a new longest is found, its new value is now set to itself
if (length > longest) {
longest = length;
count = 0;
possible = lengthOfColor(col, color, i, row)[1];
}
//if length is the same as longest, we increase the count, and make possible equal too the larger one
if (longest != 0 && length == longest) {
count++;
possible = Math.max(lengthOfColor(col, color, i, row)[1], possible);
}
}
return new Integer[]{longest, count, possible};
}
答案 0 :(得分:0)
// int col; boolean color; int row;
Integer[] result;
result = longestLength(col, color, row);
局部变量result
将保留longestLength()
的返回值。
答案 1 :(得分:0)
就像你刚才说的那样,你的实际代码并没有错。
但是如果你想使用局部变量,你只需要在方法中声明一个新数组,将这些值放在它上面,然后返回它,所以在你的方法中做以下几点。
// declare a local array in your method
Integer[] output = new Integer[3]();
// put the values you need inside your array
output[0] = new Integer(longest);
output[1] = new Integer(count);
output[2] = new Integer(possible;);
// finally return it
return output;
注意:强>
当您将值添加到此数组时,请记住将值转换为Integer
,因为它们的类型为int
。
答案 2 :(得分:0)
根据您目前所显示的内容,您不需要使用盒装原语Integer。以下是您可以做的两个版本。
Integer[] myIntegerArray = longestLength(col, color, row);
更好的方法是将您的方法更改为private int[] longestLength(int col, boolean color, int row)
并将其返回new int[]{longest, count, possible};
int[] myIntArray = longestLength(col, color, row);
两者之间的区别在于Integer与int之间存在轻微的开销。因此,当您不需要整数时,使用int会比Integer快。
答案 3 :(得分:0)
你可以这样做:
private Integer[] longestLength(int col, boolean color, int row) {
Integer array[]=new Integer[size]; // make an array
// Do your work
.............
return array; // return the array
}
答案 4 :(得分:0)
它看起来很简单,我理解的是你需要创建一个本地数组,它可以保存代码中显示的方法的值。
您只需要创建一个本地数组(在下面的代码中提到“longestRouteCount”),在您的情况下使用相同的数据类型Integer,然后调用将返回值赋值给本地数组变量的方法。
Integer longestRouteCount [];
longestRouteCount = longestLength(longest, count, possible);
如果您有相同的查询,请分享,否则请详细说明。 如果您认为这个答案对您有帮助,请投票。