我有一个ArrayList,其中包含以下内容 - CHENNAI,MUMBAI,DELHI,CHENNAI,DELHI,CHENNAI.此外,假设这3个城市名称被定义为具有针对每个城市的值的ENUM.(CHENNAI = 1,MUMBAI = 2和DELHI = 3)
我的Java 8 Streams,我能够计算城市值的总和,在这种情况下,它将是1 + 2 + 3 + 1 + 3 + 1 = 11.
问题是,如果有一个额外的标准,我怎么能计算相同ArrayList的城市值之和,
如果城市名称出现两次,则必须仅添加一次.即在这种情况下,CHENNAI存在3次.因此,当添加其值时,我们应该只考虑1(对于前2次出现)+ 1 = 2而不是3.同样,DELHI出现2次.因此,德里的价值应该只采取一次.因此,如前所述,最终结果将是2 + 2 + 3 = 7而不是11.
请帮助如何在Java 8中实现这一点