List与Map集合练习

package practise;

import java.time.LocalDate;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class Demo2 {
    public static void main(String[] args) {
        //获取数据
        String userStr0 = "10001:张三:男:1990-01-01#" +
                "10002:李四:女:1989-01-09#" +
                "10003:王五:男:1999-09-09#" +
                "10004:刘备:男:1899-01-01#" +
                "10005:孙悟空:男:1900-01-01#" +
                "10006:张三:女:1999-01-01#"+
                "10007:刘备:女:1999-01-01#"+
                "10008:张三:女:2003-07-01#"+
                "10009:猪八戒:男:1900-01-01";
        //1.把数据拿到程序中来
        String userStrs = userStr0;
        System.out.println(userStrs);
        //2.定义一个用户类
        //3.提前定义一个List<User>集合用于存储用户对象
        List<User> users = new ArrayList<>();
        //4.把用户的全部数据,用#分割
        String[] userStrArray = userStrs.split("#");
        //5.创建一个用户对象,并封装这个数据 user = "10001:张三:男:1990-01-01"
        for (String userStr : userStrArray) {
            User user = new User();
            String[] userData = userStr.split(":");
            user.setId(Long.valueOf(userData[0]));
            user.setName(userData[1]);
            user.setGener(userData[2]);
            user.setBirthday(LocalDate.parse(userData[3]));
        //6.把这个用户对象添加到集合中
            users.add(user);
        }

        System.out.println(users);

        System.out.println("----------------");
        //7.遍历List集合里的每个用户对象,统计相同名字出现的次数
        Map<String,Integer> result = new HashMap<>();
        for (User user : users) {
            String name = user.getName();
            if(result.containsKey(name)){
                result.put(name,result.get(name) +1);
            }else{

                result.put(name,1);
            }
        }
        //8.遍历Map集合
        result.forEach((k,v) -> {
            System.out.println(k + ":" + v + "次");
        });

    }
}

输出结果

10001:张三:男:1990-01-01#10002:李四:女:1989-01-09#10003:王五:男:1999-09-09#10004:刘备:男:1899-01-01#10005:孙悟空:男:1900-01-01#10006:张三:女:1999-01-01#10007:刘备:女:1999-01-01#10008:张三:女:2003-07-01#10009:猪八戒:男:1900-01-01

[User{id=10001, name='张三', gener='男', birthday=1990-01-01}, User{id=10002, name='李四', gener='女', birthday=1989-01-09}, User{id=10003, name='王五', gener='男', birthday=1999-09-09}, User{id=10004, name='刘备', gener='男', birthday=1899-01-01}, User{id=10005, name='孙悟空', gener='男', birthday=1900-01-01}, User{id=10006, name='张三', gener='女', birthday=1999-01-01}, User{id=10007, name='刘备', gener='女', birthday=1999-01-01}, User{id=10008, name='张三', gener='女', birthday=2003-07-01}, User{id=10009, name='猪八戒', gener='男', birthday=1900-01-01}]
----------------
李四:1次
张三:3次
刘备:2次
王五:1次
孙悟空:1次
猪八戒:1次

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值