【问题标题】:Array Initialization: Is this wrong?数组初始化:这是错的吗?
【发布时间】:2013-11-13 10:46:18
【问题描述】:

我对数组初始化感到很困惑。发现这是一项相当复杂的任务。

public int[] make2(int[] a, int[] b) {
  int[] make2=new int[2];
  if(a.length==2 )
  {
  make2={a[0],a[1]};
  }

  return make2;
}

错了吗?谁能解释在不循环的情况下初始化数组的方法。

为此更新

这是更新的代码。 但是你能告诉我哪个版本可以帮助我避免创建一个没有用的额外数组。当我不使用它并直接返回最后的make 2时,编译器抱怨make2无法解析

public int[] make2(int[] a, int[] b) {
 int[] large=new int[3];
  if(a.length>=2 )
  {
 int[] make2={a[0],a[1]};
 return make2;
  }
  else if(a.length==1)
  {
 int[] make2={a[0],b[0]};
 return make2;
  }
  else if(a.length==0)
  {
 int[] make2={b[0],b[1]};
 return make2;
  }
return large;
}

【问题讨论】:

  • 那段代码不会编译,为什么不自己试试呢?
  • 你肯定让它变得非常复杂。您甚至没有使用方法的第二个参数。
  • 那不是完整的代码只有一个部分。请检查更新。

标签: java arrays core


【解决方案1】:

你可以简单地:

int make2[] = new int[]{a[0], a[1]};

【讨论】:

  • 反对者,我想从我的错误中吸取教训。 请解释
【解决方案2】:

int[] make2 = new int[] { a[0], a[1] };

【讨论】:

    【解决方案3】:

    你可以这样做:

    int[] a = {1,2,3, 4,5,6,7};
    

        int[] a = {1,2};
        int[] b={2,3};
        int[] aa={a[0], b[1]};
    

    【讨论】:

      猜你喜欢
      • 2023-03-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-31
      • 2011-02-20
      • 2021-12-19
      • 1970-01-01
      相关资源
      最近更新 更多