嘿伙计我正在开发一个项目,我有4个问题,有人可以评价为(好,好,常规和差),之后我需要检查有多少人投票赞成,有多少投票赞成对于4个问题中的每个问题,都是好的,有规律的和差的。所以我想计算检查.txt并计算这个词(伟大的,好的,常规的和差的)多少次。我试图像在Python中那样做,你只需要一个字典(或一个计数器),然后简单地做: dict [" great"] + = 1
但是,用Java完成这项工作是不可能的。有没有人知道任何类似于Java中的方法,或者其他简单方法(无需创建大量变量来保存每个问题的答案)。
非常感谢你的帮助。
答案 0 :(得分:4)
在java 8中,compute
方法已添加到Map
接口。它可能比在python中复杂一点,但它可能是最接近python代码的:
Map<String, Integer> map = new HashMap<>();
String rating = ...
map.compute(rating, (key, oldValue) -> ((oldValue == null) ? 1 : oldValue+1));
作为第二个参数传递给compute
的lambda表达式接收键映射到第二个参数的旧值或null
,如果没有映射。
答案 1 :(得分:2)
这在Java中是100%可能的。
使用HashMap存储值。
例如:
HashMap counts = new HashMap<String, Integer>();
counts.put("great", 0);
counts.put("good", 0);
counts.put("regular", 0);
counts.put("poor", 0);
现在,假设你读了一个字符串input
。
要增加计数器,请执行以下操作:
counts.put(input, counts.get(input) + 1);
这会使该位置的计数器增加1。
使用counts.get(input)
获取输入字符串的计数器。