[英]Finding all indices for certain input
我是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 ;
}
}
要查找值的出现次数,您可以简单地使用计数器变量 。 在循环之前将其初始化为0,并在遇到数组中的所需值时将其递增1。
要查找指向所需值的所有索引的列表,您可以简单地使用Set<Integer>
结构,类似的原理也适用于此:在循环之前初始化一个空集,然后在循环中将索引添加到该集合中他们指向主题的价值。 循环之后,您将拥有一组所有指向您特定值的索引,并且set.size()
(可以用作“计数器变量”的替代方法)将为您提供该值的出现次数。
第一次迭代:
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;
在此处查找“近似等于”的定义
尝试这个
int count = 0;
double input = 0.334;
for (int i = 0; i < array.length; i++) {
if (array[i] == input)
++count;
}
System.out.println(count);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.