【问题标题】:FIll Array with two Different Array sequentially依次用两个不同的数组填充数组
【发布时间】:2013-12-24 18:04:05
【问题描述】:

帮助我填充数组Final[],使数组Even[] 的值存储在Final[] 的偶数索引和数组Odd[] 的偶数索引上填充Final[] 奇数索引..

public class Test 
    {

    public static void main(String[] args) 
        {
            A obj = new A();
            obj.run();
        }
    }

class A
{ 
    int temp, b;

    public void run(){

        Double[] ResultList = {1.1,2.2,3.33,4.1,5.0,6.7777};        //Dummy Values

        Double[] Final = new Double[ResultList.length];

        Double[] Even = {11.989898,22.545454,33.5454,44.444,55.5647,66.11111};  //Dummy Values

        Double[] Odd = {11.545454,22.5454,33.444,44.5647,55.989898,66.11111};   //Dummy Values

    for(int a = 0; a < ResultList.length ; a+=2)
    {   
        if(temp != 0)
        {   
            b = temp;

            System.out.println("Outer Temp B: "+temp+"\n");
        }

        for(b = 0; b <= a; b++)     //Want to stop this loop in a Manner That b=0,1,2,3,4...
        {           
            temp = b;       

            System.out.println("Inner Temp: "+b+"\n");

            Final[a] = Even[b];

            Final[a+1] = Odd[b];

            if(b != 0)              //Trying this to stop thsi loop from repetition
            {
                b = a+1;

                System.out.println("Inner B: "+b+"\n");
            }
        }
    }

    for(int i = 0; i < ResultList.length; i++)

        System.out.print(Final[i]+" ");
    }
}

需要输出:{11.989898, 11.545454, 22.545454, 22.5454, 33.5454, 33.444, 44.444, 44.5647, 55.5647, 55.989898, 66.11111, 66.11111}

【问题讨论】:

  • 您似乎将输出数组设置为只有六个条目 - 您将需要 12 个。
  • 在 b=1 之后卡住,在此值重复之后
  • 我强烈建议学习使用调试器。它将真正帮助您了解该程序的问题。
  • 我建议您使用double 而不是Double,除非您希望值为null

标签: java


【解决方案1】:

这就是我的做法-

public class A {
  int temp, b;

  public void run() {
    double[] even = { 11.989898, 22.545454, 33.5454,
        44.444, 55.5647, 66.11111 }; // Dummy Values

    double[] odd = { 11.545454, 22.5454, 33.444,
        44.5647, 55.989898, 66.11111 }; // Dummy Values
    double[] out = new double[even.length
        + odd.length];

    int count = 0;
    for (int i = 0; i < out.length; i += 2) {
      out[i] = even[count];
      out[i + 1] = odd[count];
      count++;
    }

    for (int i = 0; i < out.length; i++) {
      System.out.print(out[i] + " ");
    }
  }

  public static void main(String[] args) {
    A obj = new A();
    obj.run();
  }
}

哪些输出

11.989898 11.545454 22.545454 22.5454 33.5454 33.444 44.444 44.5647 55.5647 55.989898 66.11111 66.11111 

【讨论】:

  • +1 我也会使用 double 和标准 Java 代码约定 ;)
  • 伙计,它只是某事的一部分,我从事这项工作超过 11 个小时,现在我的思维处理能力为 NULL.. 椅子 谢谢你的帮助 :)
  • 但此代码仅在偶数和奇数数组具有相同长度时才有效。
  • 如果它们不同,您可以添加另一个计数变量。
【解决方案2】:

给你:

Double Final[] = new Double[Even.length + Odd.length];
for (int i = 0; i < Even.length; ++i) 
    Final[i*2] = Even[i]; // i*2 --> 0, 2, 4

for (int i = 0; i < Odd.length; ++i) 
    Final[i*2+1] = Odd[i]; // i*2+1 --> 1, 3, 5

【讨论】:

    猜你喜欢
    • 2016-09-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 1970-01-01
    • 2022-10-12
    相关资源
    最近更新 更多