先上代码
public class Analyze {
public void analyze(List<Result> list) {
for (int i = 0; i < list.size(); i++) {
System.out.println("名字:" + list.get(i).getName());
}
}
}
输出结果是
名字:张三
名字:张三
名字:张三
名字:张三
名字:张三
名字:李四
名字:李四
名字:李四
名字:王五
我想统计一下其中名字出现了多少次
比如
张三:5
李四:3
王五:1
其中
List<Result> list
是这样的
public class Result {
private int pin;//员工编号
private String Name;//员工名称
private int defaultdeptid;//部门编号
private Date checktime;//签到时间
下面是get、set 。看起来太多我省略了…………
我是小白,代码写的也不好,求各位大佬指点迷津!
使用 Java 的 Map 类型,遍历过程中根据当前 name 信息进行存储并处理,demo:
Map<String,Integer> result = new HashMap<String,Integer>();
for (int i = 0; i < list.size(); i++) {
String name = list.get(i).getName();
if(result.contains(name)){//存在则累加
result.put(name,result.get(name)+1);
}else{//不存在,则存入 1
result.put(name,1);
}
}
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("张三");
list.add("张三");
list.add("李四");
list.add("王五");
list.add("王五");
list.add("王五");
System.out.println(list);
Map<String, Integer> map = frequencyOfListElements(list);
System.out.println(map);
}
public static Map<String, Integer> frequencyOfListElements(List<String> items) {
if (items == null || items.size() == 0)
return null;
Map<String, Integer> map = new HashMap<String, Integer>();
for (String temp : items) {
Integer count = map.get(temp);
map.put(temp, (count == null) ? 1 : count + 1);
}
return map;
}