zoukankan      html  css  js  c++  java
  • 将 List<UserInfo>中的对象按照UserInfo.name进行分组

    package yq;

    import java.util.ArrayList;
    import java.util.LinkedHashMap;
    import java.util.List;

    import com.mysql.fabric.xmlrpc.base.Array;
    /**
    * 现有 List<UserInfo>,按照UserInfo中的姓名放到不同的List中。
    * 方案解决如下:
    * @author master
    *
    */
    public class TestList {
    public static void main(String[] args) {
    List<UserInfo> arrayList = new ArrayList<UserInfo>();
    arrayList.add(new UserInfo(1l, "wangliang", "a"));
    arrayList.add(new UserInfo(2l, "wangliang", "16"));
    arrayList.add(new UserInfo(3l, "wangliang", "12"));
    arrayList.add(new UserInfo(4l, "qy", "126"));
    arrayList.add(new UserInfo(5l, "yq", "123456"));
    arrayList.add(new UserInfo(5l, "yq", "qqq"));
    arrayList.add(new UserInfo(6l, "qy", "111"));
    /*
    * 方式一:
    * LinkedHashMap<String, ArrayList<UserInfo>> map=new LinkedHashMap<String,ArrayList<UserInfo>>();
    for (UserInfo userInfo : arrayList) {
    //if contains key
    if(map.containsKey(userInfo.getName())){
    map.get(userInfo.getName()).add(userInfo);
    }else{
    ArrayList<UserInfo> userInfoValue = new ArrayList<UserInfo>();
    userInfoValue.add(userInfo);
    map.put(userInfo.getName(), userInfoValue);
    }
    }
    System.out.println(map);
    */
    /*方式二:*/
    LinkedHashMap<String, ArrayList<UserInfo>> map=new LinkedHashMap<String,ArrayList<UserInfo>>();
    for (UserInfo uInfo :arrayList) {
    if(!map.containsKey(uInfo.getName())){
    map.put(uInfo.getName(),new ArrayList());
    }
    map.get(uInfo.getName()).add(uInfo);
    }
    System.out.println(map);
    }
    }

  • 相关阅读:
    bzoj 1087: [SCOI2005]互不侵犯King
    左偏树+菲波那切堆
    bzoj 4455: [Zjoi2016]小星星
    luogu P1941 飞扬的小鸟
    luogu P2814 家谱
    平衡树之非旋Treap
    luogu P3147 [USACO16OPEN]262144
    luogu P1854 花店橱窗布置
    计蒜客NOIP2018模拟1
    [BZOJ3456]城市规划(生成函数+多项式求逆+多项式求ln)
  • 原文地址:https://www.cnblogs.com/wlhebut/p/6238319.html
Copyright © 2011-2022 走看看