在将数组传递给 java 中的方法时遇到问题
Having problems in passing an array to a method in java
Question我创建了一个 class,其中一个方法接受两个数组作为参数。我将其定义为:
myMethod(int []x, int []y){
//Code
}
sampleInputs
我想通过 MyClass.myMethod({1,2,3},{4,5,6})
访问 main 中的 class 方法
不是 new int[]{1,2,3}...
有什么办法吗?
注意:我无法编辑主 class。所以在方法体内可以做的任何事情都是必需的。
感谢您的宝贵时间。
我的代码:
导入 java.util.Arrays;
public class 解决方案{
public static int solution(int[] x, int[] y) {
// Your code here
int[] shorter = (x.length>y.length)? y : x;
int[] longer = (x.length>y.length)? x : y;
Arrays.sort(shorter);
Arrays.sort(longer);
for(int i=0; i<shorter.length; i++){
if(shorter[i]!=longer[i]){
System.out.println(longer[i]);
return longer[i];
}
else {
System.out.println(longer[longer.length-1]);
return longer[longer.length-1];
}
}
return 0;
}
}
如果您不能更改主要 class,但可以完全控制解决方案-Class,您可以将解决方案方法更改为使用字符串参数,然后您可以转到方法内部的 int[]。
public static int solution(String xStr, String yStr){
int[] x = splitString(xStr);
int[] y = splitString(yStr);
...
}
public static int[] splitString(String s) {
String[] array = s.substring(1, s.length() - 2).split(",");
int[] result = new int[array.length];
for(int i = 0; i < array.length; i++){
result[i] = Integer.parseInt(array[i]);
}
return result;
}
Question我创建了一个 class,其中一个方法接受两个数组作为参数。我将其定义为:
myMethod(int []x, int []y){
//Code
}
sampleInputs
我想通过 MyClass.myMethod({1,2,3},{4,5,6})
不是 new int[]{1,2,3}...
有什么办法吗? 注意:我无法编辑主 class。所以在方法体内可以做的任何事情都是必需的。
感谢您的宝贵时间。
我的代码: 导入 java.util.Arrays;
public class 解决方案{
public static int solution(int[] x, int[] y) {
// Your code here
int[] shorter = (x.length>y.length)? y : x;
int[] longer = (x.length>y.length)? x : y;
Arrays.sort(shorter);
Arrays.sort(longer);
for(int i=0; i<shorter.length; i++){
if(shorter[i]!=longer[i]){
System.out.println(longer[i]);
return longer[i];
}
else {
System.out.println(longer[longer.length-1]);
return longer[longer.length-1];
}
}
return 0;
}
}
如果您不能更改主要 class,但可以完全控制解决方案-Class,您可以将解决方案方法更改为使用字符串参数,然后您可以转到方法内部的 int[]。
public static int solution(String xStr, String yStr){
int[] x = splitString(xStr);
int[] y = splitString(yStr);
...
}
public static int[] splitString(String s) {
String[] array = s.substring(1, s.length() - 2).split(",");
int[] result = new int[array.length];
for(int i = 0; i < array.length; i++){
result[i] = Integer.parseInt(array[i]);
}
return result;
}