gpt4 book ai didi

java - 对 arraylist java 中的重复值进行分组和计数

转载 作者:行者123 更新时间:2023-12-01 12:29:11 26 4
gpt4 key购买 nike

我在我的应用程序中使用了 ArrayList,所以我不想转向 HashMap,因为我已经看到一些使用它的答案,但在我的情况下不起作用。

我正在创建我的最终高中项目,这是一个学习时间表调度程序。我已设法按考试日期对 ArrayList 进行排序,但现在我正在尝试分析时间表以对其进行评分,并将评级与其他生成的时间表进行比较,以便为用户提供最佳时间表(具有最高值)。

我已经得到了输出他们每天要做的事情的时间表,即:南非荷兰语、IT、LO、数学、南非荷兰语、南非荷兰语等。

但似乎很长一段时间它都在最后一项上重复,即使最后两次考试在 2 天内或非常接近,最后一项也会在整个列表中占据主导地位。像这样:

Exam Dates:
LO = 2 Sep
Maths = 5 Sep
IT = 9 Sep
Afrikaans = 10 Sep

Results:
LO
IT
Afrikaans
Maths
IT
Afrikaans
Afrikaans
Afrikaans
Afrikaans

正如您所看到的,结果更倾向于最后一个给定的主题。

现在我尝试对数据进行比较和分组,以便我可以看到分配给每个主题的天数,因此使用上面的示例,我需要它看起来像这样:

LO = 1
Maths = 1
IT = 2
Afrikaans = 5

到目前为止我有这个:

ArrayList<Day> days = new ArrayList<Day>();
For(int i = 0; i < timeTable.size(); i++) {
// need to group the days here
if(days.contains(timeTable.get(i))) {
days.get(i).incrementNumberOfDays();
} else {
days.add(timeTable.get(i));
}
}

但这并不是对数据进行分组并计算重复项。请帮忙,我的项目一周后到期,我花了两个月的时间。我快完成了,但被困在这里。

提前致谢!

最佳答案

您可以使用java.util.Collections.Frequency:

int count = Collections.frequency(timeTable, value);

编辑:回答评论中的最后一个问题:

Surely there is a quick simple way to say this value occurred 3 times in the arraylist?

关于java - 对 arraylist java 中的重复值进行分组和计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26085295/

26 4 0