请问java 结果集list<user>,根据user.name属性,如何再将name属性相同的user放到一个新的list中?
高洛峰
高洛峰 2016-11-12 14:23:36
0
2
514

请问java 结果集list<user>,根据user.name属性,如何再将结果集中的name属性相同的user放到一个新的list中?user的name可能多个,不固定,根据name将user放到不同新的的list

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

répondre à tous(2)
学霸

直接写点代码了`

public class MyTest {
    class User{
        String name;
        int age;
        public User(String name,int age) {
            this.name = name;
            this.age = age;
        }

    }

    public static void main(String[] args) {
        MyTest myTest = new MyTest();
        List users = new ArrayList();
        User user1 = myTest.new User("zhangsan", 18);
        User user2 = myTest.new User("lisi", 18);
        User user3 = myTest.new User("wangwu", 18);
        User user4 = myTest.new User("zhangsan", 19);
        User user5 = myTest.new User("zhangsan", 20);
        User user6 = myTest.new User("lisi", 19);

        users.add(user1);
        users.add(user2);
        users.add(user3);
        users.add(user4);
        users.add(user5);
        users.add(user6);
        /*根据name将user放到不同新的的list*/
        Map map = new HashMap>();
        for (User user : users){
            //如果map中不存此name,则以此name为key
            if(map.get(user.name) == null ){
                List list = new ArrayList();
                list.add(user);
                map.put(user.name,list);
            }else{
                List list = (List) map.get(user.name);
                list.add(user);
                map.put(user.name,list);
            }
        }
        List zhangsans = (List)map.get("zhangsan");
        for (User user : zhangsans){
            System.out.println(user.name+"  :  "+user.age);
        }
        System.out.println(map.get("zhangsan"));
    }
}


三叔

拿来练习下RxJava

List all = getUserList();
Observable.from(all)
          .groupBy(u -> u.name)
          .flatMap(g -> g.toList())
          .subscribe(list -> {
              System.out.println(list.get(0).name + ":");
              for (User u : list) {
                  System.out.println(u);
              }
              System.out.println();
          });


Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal