将数据放入Java数组中

时间:2015-02-20 22:58:45

标签: java arrays equality

我有一个关于数组如何存储数据以及如何正确地将数据放入数组的基本问题。

  

本部分回答

     

在此代码中,方法 spinWheel()只是调用0-36之间的整数。

    for(cntr=0; cntr<99; cntr++)
        {
            spunNum=spinWheel();
            all99Spun[0]=spunNum;
        }
  

如何调整数组all99Spun []以便下次循环执行时将spunNum放入all99Spun [1]等等?

我对数组的另一个问题是如何检查1个整数与存储在数组中的所有整数之间的相等性。

例如我有一个存储轮盘赌轮的所有红色数字的数组。 int redNumbers[] = new int[] {1,3,5,7,9,12,14,16,18,19,21,23,25,27,30,32,34,36}; 如何检查存储在all99Spun数组中的数字与红数字数组中整数的数字是否相等?

3 个答案:

答案 0 :(得分:1)

只需更改

all99Spun[0]=spunNum;

all99Spun[cntr]=spunNum;

答案 1 :(得分:1)

只需更改

all99Spun [0] = spunNum; 到

all99Spun [CNTR] = spunNum;

要回答第二个问题,我想你只想知道读取数组中是否存在旋转数组中的任何一个数字。如果要检查读取数组中是否只存在一个数字,则可以循环直到找到该数字:

int num = all99Spun[0];
int index = -1;
for(int i = 0; i < redNumbers.length ; i++)
{
     if(redNumbers[i] == num)
     {
           index = i;
           break;
     }
}

如果在末尾索引不等于-1,则该数字在redNumbers数组中。

如果要检查整个阵列:

for(int i = 0 ; i < all99Spun.length ; i++)
{
    for(int j = 0; j < redNumbers.length; j++)
    {
          if(redNumbers[j] == all99Spun[i])
          {
                //doWork
          }
    }
}

答案 2 :(得分:0)

鉴于我理解你的第一个问题的方式,我认为@Gregory的答案是正确的。

所以我会尝试回答你的第二个问题。

  
    

我对数组的另一个问题是如何检查1个整数与存储在数组中的所有整数之间的相等性。

  

有两种简单的方法可以查看整数数组是否相等。

  1. 使用循环迭代,保留对前一个数字的引用。一旦你发现一个与前一个不相等的那个,你知道它们并不都是平等的。
  2. 由于您使用的是Java,因此可以将它们全部添加到Set,这样可以保证唯一性。如果它们都相等,那么在将它们全部添加到集合之后,该集合应该只包含1个元素。
  3. 第一个例子:

    for (int i = 0; previous = redNumbers[i]; i < redNumbers.length; i++) {
        if (redNumbers[i] != previous) {
            // they are not all equal.
        }
        previous = redNumbers[i];
    }
    

    第二个例子:

    Set<Integer> distinct = new TreeSet<>(Arrays.asList(redNumbers));
    if (distinct.size() > 1) {
        // they are not all equal.
    }