【发布时间】:2020-10-10 11:04:43
【问题描述】:
我如何计算String type 字段/属性在所述ArrayList<Item> 中等于武器的出现次数。我添加了三个格式错误的System.out.println();
package main;
import java.util.ArrayList;
import java.util.Collections;
class Main{
public static void main(String[] args) {
ArrayList<Item> gear;
gear.add(new Item("weapon", 1, 1));
gear.add(new Item("weapon", 1, 1));
gear.add(new Item("helmet", 1, 1));
gear.add(new Item("ring", 1, 1));
gear.add(new Item("weapon", 1, 1));
gear.add(new Item("ring", 1, 1));
System.out.println(Collections.frequency(gear.getType(), "weapon"));
System.out.println(Collections.frequency(gear.getType(), "helmet"));
System.out.println(Collections.frequency(gear.getType(), "ring"));
}
class Item{
String type;
int weight;
int strength;
public Item(String type, int weight, int strength) {
super();
this.type = type;
this.weight = weight;
this.strength = strength;
}
public String getType() {
return type;
}
}
}
想要的输出:
3
1
2
【问题讨论】:
-
您想计算
gear中type属性为weapon 的元素的数量。对吗? -
没错
-
这个问题已经在 SO 上被多次询问和回答。请参阅how to get frequency of Object's field in ArrayList 和stackoverflow.com/questions/35070638/…。你试过谷歌搜索 java 属性频率列表 吗?
-
@Abra with what keywords did you find a duplicate just ask for the future 谢谢,是的,我做到了,但我只找到了有关 int 和字符串列表的示例
-
你是对的,我经常缺少正确的关键字,遗憾的是我还没有学习流,但这是我的 OCP 考试即将到来的主题,我刚开始使用 Java 并且只使用脚本语言 3 个月前之前,如果我找不到正确的答案,我经常创建一个新答案,但现在它已被锁定,我无法删除它,而且我已经进行了额外的编辑,所以如果你可以将其标记为重复,那将是最受欢迎的跨度>