返回数组方法

时间:2014-03-27 17:54:56

标签: java arrays

我不清楚这要求我做什么,以及我如何执行它,参考 int [] copyAndReplaceLessThan(int [] a,int b)方法。非常感谢任何帮助,谢谢。

任务:

在main中测试此方法。打印原始数组和方法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;
}
}

2 个答案:

答案 0 :(得分:0)

一些问题:

您应该保持原始数组不变,但您要使用

设置其元素
a[i] = b;

没有必要这样做

a[i] = a[i];

因为您只是将值重置为自身。

但是你最大的问题是你创建一个新阵列,正如你应该的那样。相反,你的&#34;新&#34;数组(y)指的是原始数据(a),因此对y的任何更改实际上都是在原始数据中进行的。

我还建议您为a测试或尝试null

答案 1 :(得分:0)

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