gpt4 book ai didi

java - java列表只显示一次项目,但计算它们的出现次数?

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

我想创建一个列表,存储相同类型的对象,例如:

class Card {
String title;
int point;

public Card(String t, int p) {
title = t;
point = p;
}
}

我将一些对象添加到列表中:

list.add(new Card("Fred",3));
list.add(new Card("Fred",1));
list.add(new Card("Luke",5));
list.add(new Card("John",3));

我怎样才能完成以下任务?创建一个新列表,其中包含先前的元素,但每个标题一次,并计算它们的出现次数。例如:

Fred 2
Luke 1
John 1

我可以完成第一部分,我只需创建一个 HashSet,并覆盖歌曲的“equals”和“hashCode”方法。但我不想完全删除两个具有相同标题的内容。

最佳答案

Map<String, Card> cardsByTitle = new TreeMap<>();

void add(String title, int point) {
Card card = cardsByTitle.get(title);
if (card == null) {
card = new Card(title, point);
cardsByTitle.put(title, point);
} else {
card.point += point;
}
}

for (Card card : cardsByTitle.values) { }

或者类似的东西。 TreeMap(i.o. HashMap)保持标题的顺序。

关于java - java列表只显示一次项目,但计算它们的出现次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22423302/

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