gpt4 book ai didi

java - 在 Arraylist 中计算重复项和分组

转载 作者:行者123 更新时间:2023-11-30 11:08:59 25 4
gpt4 key购买 nike

对于我的项目,我们必须使用 Java 来操作某些 LISP 措辞。给出其中一项任务:

'(A A A A B C C A A D E E E E)

将重复项分组并使输出如下:

′((4A)(1B)(2C)(2A)(1D)(4E))

注意前四个 A 与后两个 A 是如何分开的...

我的问题是跟踪每个字母的数量。我将给定的字母添加到数组列表中,并对其进行了一些操作:

for (int i=0;i<list.size();i++)
{
String val=list.get(i);
String first=list.get(0);
while (val.equals(first))
{
total+=1;
val="X";
}
}

总计应该是第一次出现的次数,但它一直给我 6。6 是序列中所有 A 的正确数字,但我如何让它停止在前四个,记录数字然后继续下一个字母?

最佳答案

这是 Java 8 Stream API。

 Map<Character, Long> countedDup =  Arrays.asList('A' ,'A' ,'A', 'A', 'B', 'C', 'C', 'A', 'A', 'D', 'E', 'E', 'E', 'E')
.stream().collect(Collectors.groupingBy(c -> c, Collectors.counting()));
System.out.println(countedDup);//{A=6, B=1, C=2, D=1, E=4}

关于java - 在 Arraylist 中计算重复项和分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28313144/

25 4 0