集合轉換

 

動態轉換list的數據類型,將map類型的list轉成實體類類型的

/**
	 * 將一個map組成的list轉成實體類bean組成的list
	 * @param mapList 存了map對象的list
	 * @param clazz 需要將這些map轉成哪個實體類對象
	 * @return
	 */
	public <T> List<T> convertMapListToBeanList(List<Map> mapList,Class<T> clazz){
		List<T> list=new ArrayList<T>();
		for(Map map:mapList){
			try {
				T obj=clazz.newInstance();//創建bean的實例對象
				for(Object o:map.keySet()){//遍歷map的key
					for(Method m:clazz.getMethods()){//遍歷bean的類中的方法,找到set方法進行賦值
						if(m.getName().toLowerCase().equals("set"+o.toString().toLowerCase())){
							m.invoke(obj, map.get(o));
						}
					}
				}
				list.add(obj);
			} catch (IllegalAccessException e) {
				e.printStackTrace();
			} catch (InvocationTargetException e) {
				e.printStackTrace();
			} catch (InstantiationException e) {
				e.printStackTrace();
			}
		}
		return list;
	}

List泛型通過JSON轉換

		List<user1> user=ArrayList<user1>
    	List<user2> listDqFistAudit= JSON.parseObject(JSON.toJSONString(user1), new TypeReference<List<user2>>() {});// 通過json改變對象類型

List兩個對象整合,並且使用 compareList.sort排序

	public static void main(String[] args) {
        List<ReplyInfo> replyInfos1 = new ArrayList<>();
        ReplyInfo r1 = new ReplyInfo();
        r1.setInsertTime(1544326153000L);//12-9
        r1.setAlias("r1");
		r1.setSiteid(2);
        ReplyInfo r2 = new ReplyInfo();
        r2.setInsertTime(1544585353000L);//12-12
        r2.setAlias("r2");
		r2.setSiteid(1);
        replyInfos1.add(r1);
        replyInfos1.add(r2);
 
        List<ReplyInfo> replyInfos2 = new ArrayList<>();
 
        ReplyInfo r3 = new ReplyInfo();
        r3.setInsertTime(1544498954000L);//12-11
        r3.setAlias("r3");
		r3.setSiteid(1);
        ReplyInfo r4 = new ReplyInfo();
        r4.setInsertTime(1544412554000L);//12-10
        r4.setAlias("r4");
		r4.setSiteid(2);
 
        ReplyInfo r5 = new ReplyInfo();
        r5.setInsertTime(1544412555000L);//12-10
        r5.setAlias("r5");
		r5.setSiteid(3);
 
        replyInfos2.add(r3);
        replyInfos2.add(r4);
        replyInfos2.add(r5);
    //List對象合併
        List<ReplyInfo> compareList = new ArrayList<>();
        compareList.addAll(replyInfos1);
        compareList.addAll(replyInfos2);
		
		
        compareList.sort(new Comparator<ReplyInfo>(){
			
			public int compare(ReplyInfo o1, ReplyInfo o2) {
				//首先根據站點號排序,如果站點相同則對比時間。
				int flag=o1.getSiteid()-(o2.getSiteid());
				if(flag==0){
//					return o1.getDate_time().compareTo(o2.getDate_time());//時間對比排序
					return (int) (o1.getInsertTime()-o2.getInsertTime());
				}else{
					return flag;
				} 
			}});
        for(ReplyInfo cl:compareList ){
        	System.out.println(cl.getSiteid()+":::::"+cl.getInsertTime()+cl.getAlias());
        }
	}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章