查找某些输入的所有索引

时间:2014-07-05 15:08:42

标签: java arrays

我是Java的新手,也是本网站的新用户,这是我的数组

    double array[]  = new double[6];

    // Initializing elements
    array[0] = 0.334;
    array[1] = 0.334;
    array[2] = 0.334;
    array[3] = 0.501;
    array[4] = 0.501;
    array[5] = 0.334;

    // Use for loop to display elements
     for (int i = 0; i < array.length; i++) 
    {
           System.out.print(array[i]);  
           System.out.print("\n");      
    }

我想找出值的所有指数(0.334);我的意思是这个例子它应该返回4,这表明4个索引具有这个值。

                    int index=-1;
                    int i; 
                    for(i = 0; i < array.length;i++)
                        {
                            if (Input>=array[i]== ) // user input = 0.334
                               {
                                index=array[i];
                    System.out.print("Output = "+index);
                    return ;
                    }   
}

3 个答案:

答案 0 :(得分:1)

  • 要查找值的出现次数,您只需使用a即可 计数器变量。在循环之前将其初始化为0,并在数组中遇到所需的值时将其递增1.

  • 要查找指向所需值的所有索引的列表,请执行 可以简单地使用Set<Integer>结构,类似的原则 here:在循环之前初始化一个空集,然后添加索引 如果它们指向主题中的值,则在循环内设置。在循环之后,您将拥有一组指向您的特定值的所有索引,并且set.size()(可以用作“计数器变量”的替代)将为您提供该值的出现次数。

答案 1 :(得分:0)

第一次迭代:

  int count = 0;
  for (double d : array) {
    if (d == user_input) {
      count ++;
    }
  }
  return count;

然后你应该注意浮点数可能无法与完全进行比较。即存储器中的数字(例如,如果计算的话)可能与用户键入的内容(例如,已解析的)完全相同

  int count = 0;
  for (double d : array) {
    if (approximatelyEqual(d, user_input, 1e-6)) {
      count ++;
    }
  }
  return count;

查看here以获取aboutEqual

的定义

答案 2 :(得分:0)

试试这个

    int count = 0;
    double input = 0.334;
    for (int i = 0; i < array.length; i++) {
        if (array[i] == input)
            ++count;
    }

    System.out.println(count);