【发布时间】:2018-04-03 16:34:02
【问题描述】:
假设items 数组由以下项组成{3.1, 3.1, 3.1, 3.2, 3.2, 3.3, 3.4, 3.4, 3.4, 3.4, 3.1, 3.1}
我想要的是计算每个项目在连续项目中的出现次数,这样:
3.1 = 3
3.2 = 2
3.3 = 1
3.4 = 4
3.1 = 2
我写了以下函数:
private void displayItems(List<Double> items) {
double current_item=0;
for(int i=0; i<items.size(); i++) {
int count=1;
current_item = items.get(i);
if(i != items.size()) {
for(int j=i+1; j<items.size(); j++) {
double next_item = items.get(j);
if(current_item == next_item) {
count++;
}else {
break;
}
}
System.out.println("item value is " + current_item + " and count is " + count);
}
}
}
我得到了以下结果:
item value is 3.1 and count is 3
item value is 3.1 and count is 2
item value is 3.1 and count is 1
item value is 3.2 and count is 2
item value is 3.2 and count is 1
item value is 3.3 and count is 1
item value is 3.4 and count is 4
item value is 3.4 and count is 3
item value is 3.4 and count is 2
item value is 3.4 and count is 1
item value is 3.1 and count is 2
item value is 3.1 and count is 1
我该怎么做才能显示如下结果:
item value is 3.1 and count is 3
item value is 3.2 and count is 2
item value is 3.3 and count is 1
item value is 3.4 and count is 4
item value is 3.1 and count is 2
请注意,我不想计算整个数组中每个项目的出现次数,我只想计算它在连续项目中的出现次数。
【问题讨论】:
-
要计算连续项目,应该“可能”只有一个循环。
-
我认为您应该遍历数组一次,并将项目存储在浮点索引映射中,然后该值就是计数。
-
@Fallenreaper OP 想要计算运行次数,而不是总数。 (见预期结果的最后一行。)
-
@user2864740 我不能用一个循环来做到这一点
-
这不是与 that 问题(“Java 计算数组中每个项目的出现次数”)的重复。查看预期输出。