gpt4 book ai didi

java - 删除 ArrayList 中的重复元素并在第一个元素后的括号中添加出现的总数

转载 作者:搜寻专家 更新时间:2023-11-01 03:27:25 25 4
gpt4 key购买 nike

这里是初学者。我有一个 String ArrayList,它在打印时基本上看起来像这样(但根据用户输入更改值):

[22, 37, 77, 77, 98, 101, 104, 107, 107, 107, 150]

我想删除重复的元素并在第一个元素后的括号中添加出现的总数,所以它看起来像这样:

[22, 37, 77 (2), 98, 101, 104, 107 (3), 150]

我已经弄清楚如何删除重复的元素,但我不太清楚其余的。

到目前为止,这是我的代码(ArrayList 称为重复项):

int q, z;
for(q = 0; q < duplicates.size() - 1; q++) {
for(z = q + 1; z < duplicates.size() - 1; z++) {
if(duplicates.get(q).equals(duplicates.get(z))) {
duplicates.remove(q);
}
}
}

System.out.println(duplicates);

结果输出是:

[22, 37, 77, 98, 101, 104, 107, 150]

有没有人对我如何获得那些带有出现次数的括号有任何建议?我一直在努力想出一种方法来计算为每个值删除的重复项,但我所能计算的只是删除周期内重复项的总数,这并不是特别有用。

ArrayList 最初是一个 Integer ArrayList,但我将其更改为 String ArrayList,以便我可以向元素添加非数字字符。

最佳答案

我建议使用 Map 。您可以使用它来将键与有用 值相关联。在这种情况下,键是要处理的数组元素,值是数组中每个元素的出现次数。您的伪代码将是:

initialize a map of appropriate size and type
iterate the array to be processed. for each element in array:

set key:= current element in array
set value := value from map corresponding to key
if value is null, initialize value to 1
store value for key in map

最后,您将迭代 map 的键并打印出键及其对应的值。

关于java - 删除 ArrayList 中的重复元素并在第一个元素后的括号中添加出现的总数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9820495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com