[英]Returning Array Method
我不清楚這要求我做什么,以及我如何執行它,參考int [] copyAndReplaceLessThan(int []a, int b)方法。 任何幫助將不勝感激,謝謝。
在 main.c 中測試此方法。 打印原始數組和方法 copyAndReplaceLessThan 返回的返回數組。 由於此方法返回一個值(整數數組),因此您需要在調用方法 (main) 中的局部變量(int [] 類型)中“捕獲”返回值。
例如:假設您將數組“x”傳遞給方法並使用數組“y”來捕獲返回值。 在調用方法之前打印 x,然后在調用方法之后打印 x 和 y。
public class ArrayExamples{
public static void swapInts(int a, int b){
int temp;
temp = a;
a = b;
b = temp;
}
public static void swapIntArrays(int [] a, int [] b){
int x;
for (int i=0; i<a.length; i++){
x = a[i];
a[i]=b[i];
b[i]=x;
}
}
public static void printArray(int[] a){
for(int i = 0; i < a.length; i++)
{
System.out.print(a[i] + " ");
}
System.out.println("");
}
public static void main(String args[]){
int [] one ={3,4};
int [] two ={7,8};
printArray(one);
printArray(two);
swapIntArrays(one,two);
printArray(one);
printArray(two);
System.out.println();
int [] x ={3,45,17,2,-1,44,9,23,67,2,-6,-23,-100,12,5,1212};
int b = 12;
printArray(x);
replaceLessThan(x,b);
printArray(x);
printArray(x);
copyAndReplaceLessThan(x,b);
printArray(x);
printArray(y);
}
public static void replaceLessThan(int []a, int b){
for(int i=0; i < a.length; i++){
if(a[i] < b){
a[i] = b;
}
else{
a[i] = a[i];
}
}
}
public static int[] copyAndReplaceLessThan(int []a, int b){
int []x = a;
int[]y = x;
for(int i=0; i < a.length; i++){
if(a[i] < b){
a[i] = b;
y[i] = b;
}
else{
a[i] = a[i];
y[i] = a[i];
}
}
return y;
}
}
一些問題:
您應該保持原始數組不變,但您將其元素設置為
a[i] = b;
這樣做毫無意義
a[i] = a[i];
因為您只是將值重置為自身。
但是你最大的問題是你沒有像你應該的那樣創建一個新數組。 相反,您的“新”數組 ( y
) 指的是原始數組 ( a
),因此對y
任何更改實際上都是在原始數組中進行的。
我還建議你要么測試或嘗試a
為null
湖。
public static int[] copyAndReplaceLessThan(int[] a, int b)
{
int[] x = a.clone();
for (int i = 0; i < x.length; i++)
{
if (x[i] < b)
{
x[i] = b;
}
}
return x;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.