集合的一个综合小例题
客户的消费记录如下: 姓名 消费金额 李四 8359 李四 1048 王五 3827 李四 2158 李四 553 王五 837 王五 2870 张三 9936
设计程序,找出消费次数最多的客户,并获取到其最高的消费金额
个人思路:先建立一个list来存放数据,因为list可以存储重复数据,然后再将use中的name提取到map里面,键值为名字,内容为个数,这样就可以统计消费的个数了,然后再用if语句来筛选出最大消费者,再用最大消费者的名字返回到List里面提取最大的金额
package com.ujiuye.HomeWork;
public class use {
// 定义一个客户类,存在姓名和金额属性
private String name;
private double money;
public use() {
super();
// TODO Auto-generated constructor stub
}
public use(String name, double money) {
super();
this.name = name;
this.money = money;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
}
package com.ujiuye.HomeWork;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class HomeWork04 {
public static void main(String[] args) {
// 创建一个list数组
List<use> list = new ArrayList<>();
//定义一个最大消费者的姓名
String maxname = null ;
//定义一个最大消费者的额度
double maxmoney = 0;
//添加数据
list.add(new use("李四",8359));
list.add(new use("李四",1048));
list.add(new use("王五",3827));
list.add(new use("李四",2158));
list.add(new use("李四",553));
list.add(new use("王五",837));
list.add(new use("王五",2871));
list.add(new use("张三",9936));
//将map里存放消费次数统计
Map<String, Integer> map = new HashMap<>();
for (use use : list) {
//三则运算来判断消费次数
map.put(use.getName(), map.get(use.getName()) != null? (map.get(use.getName())+1):1);
}
//System.out.println(map);
//定义entry类型来判断最大消费者
Set<Map.Entry<String, Integer>> set = map.entrySet();
int max = 0;
for (Entry<String, Integer> entry : set) {
if(max <= entry.getValue()) {
max = entry.getValue();
System.out.println("最大消费者是"+entry.getKey()+"一共消费了"+max+"次");
maxname = entry.getKey();
}
}
//增强for进行最大消费者的金额统计
for (use u : list) {
if(maxname.equals(u.getName())){
//maxmoney += u.getMoney();
if(u.getMoney() >= maxmoney) {
maxmoney = u.getMoney();
}
}
}
System.out.println("消费金额为"+maxmoney);
}
}
上一篇:
IDEA上Java项目控制台中文乱码
