Un objeto que implementa elementos en el interior de la lista para un atributo de grupo

Un objeto que implementa elementos en el interior de la lista para ser un grupo de atributos.

la implementación del código:

import com.alibaba.fastjson.JSON;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

public class ListGroupTest {

    static List<User> userList = new ArrayList<>();

    public static void main(String[] args) {

        /* 方式一:构建list,map,来实现对List,按某个元素分组 (当分组的元素存在为null时,可使用) */
        Map<Integer, List<User>> groupBy2 = new HashMap<>();
        List<User> tempList = null;
        for(User user : userList) {
            if(groupBy2.containsKey(user.getSex())) {
                tempList = groupBy2.get(user.getSex());
                tempList.add(user);
            } else {
                // 否则,第一次先构造一个list,在存入map
                tempList = new ArrayList<>();
                tempList.add(user);
                groupBy2.put(user.getSex(), tempList);
            }
        }
        System.out.println("groupBy2: " + JSON.toJSONString(groupBy2));

        /* 方式二:使用java8 来实现对List,按某个元素分组 (当分组的元素都不为null时,可使用,否则,会报空指针) */
        Map<Integer, List<User>> groupBy = userList.stream().collect(Collectors.groupingBy(User::getSex));
        System.out.println("groupBy: " + JSON.toJSONString(groupBy));
    }

    static {
        User user = new User();
        user.setId(1L);
        user.setName("张三");
        user.setSex(1);
        userList.add(user);

        user = new User();
        user.setId(2L);
        user.setName("李四");
        user.setSex(0);
        userList.add(user);

        user = new User();
        user.setId(3L);
        user.setName("王五");
        user.setSex(1);
        userList.add(user);

        user = new User();
        user.setId(4L);
        user.setName("赵六");
        user.setSex(0);
        userList.add(user);

        user = new User();
        user.setId(5L);
        user.setName("小七");
        user.setSex(0);
        userList.add(user);

        /* 将分组的字段 设置为null */
        user = new User();
        user.setId(6L);
        user.setName("大巴");
        user.setSex(null);
        userList.add(user);
    }


    static class User {

        private Long id;
        private String name;
        private Integer sex;
        private String remark;

        /* 省略 get set */
    }

}

Supongo que te gusta

Origin www.cnblogs.com/xbq8080/p/12606974.html
Recomendado
Clasificación