java:List 根据对象某一个属性分组

开发中经常需要根据对象的同一属性进行分组,现记录下操作

package com.wu.songta.mall.model;

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

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.TypeReference;

/**List 根据属性分组
 * @author 
 *
 */
public class ListGroup {

    public static Map> ListGroup(List dataList ) {
        
        BusinessKnowMemberPicModel dataItem; // 数据库中查询到的每条记录
        Map> resultMap= new HashMap>(); // 最终要的结果
        for(int i=0;i             dataItem = dataList.get(i);

           // 根据groupId进行分组切割List
            if(resultMap.containsKey(dataItem.getGroupId())){
                resultMap.get(dataItem.getGroupId()).add(dataItem);
            }else{
                List list = new ArrayList();
                list.add(dataItem);
                resultMap.put(dataItem.getGroupId().toString(),list);
            }
        }
        return resultMap;
        
    }
    public static void main(String[] args) {
        BusinessKnowMemberPicModel model1 = new BusinessKnowMemberPicModel();
        BusinessKnowMemberPicModel model2 = new BusinessKnowMemberPicModel();
        model1.setId(1L);
        model1.setGroupId(1L);
        model2.setId(2L);
        model2.setGroupId(2L);
        
        List dataList = new ArrayList();
        dataList.add(model1);
        dataList.add(model2);
        
        Map> resultMap = ListGroup.ListGroup(dataList);*/
        System.out.println(JSON.toJSONString(dataList));
        
        
    } 
    
}
 

你可能感兴趣的:(javaweb)