其实我的问题是:如何返回一个数组?≈如何输出一个数组?
先看看问题:一个数组里面两数相加,返回其下标。
public class AandB {
public int[] twoSum(int[] nums, int target) {
int[] index = new int[2];
for(int i = 0 ; i <nums.length ; ++i){
for(int j = i+1; j < nums.length ; ++j){
if(nums[i]+nums[j]== target){
index[0]=i;
index[1]=j;
}
}
}
return index;
}
}
public class LikouTest {
public static void main(String[] args) {
int[] nums = {2, 7, 11, 15};
int target = 26;
AandB aandB = new AandB();
System.out.println(aandB.twoSum(nums, target));
}
}
运行的结果一直显示的是index的地址值 [I@5caf905d
之前学废了的数组又还给教科书了。
灵鸡一动,百度一下,找到办法。
两种方法:
- 遍历数组,输出数组。
for循环这方法就是个弟弟,看起来又长又臭。 - 使用Array类中的toString方法
toString() 方法可把数组转换为字符串,并返回结果。
修改修改我的辣鸡代码:
public class LikouTest {
public static void main(String[] args) {
int[] nums = {2, 7, 11, 15};
int target = 26;
AandB aandB = new AandB();
System.out.println(Arrays.toString(aandB.twoSum(nums, target)));
}
}
成功返回需要的结果,开森。