将List转为Map 如List<javaBean>转为Map<String,javaBean>

来源:互联网 发布:insanity 知乎 编辑:程序博客网 时间:2024/06/03 05:32

/*
  * 将List转为Map 如List<javaBean>转为Map<String,javaBean>
  * 参数List<?>为实体类的列表,getkey为获取主键的方法名
  * 返回值为Map<String,javaBean>
  * rcqjl
  * */
 public  static Map<String,Object> listToMap( List<?> list,String getkey) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, SecurityException{
  Map<String,Object> map = new HashMap<String,Object>();
  for(int i=0;i<list.size();i++){
   Class cl = list.get(i).getClass();
         Method m1 = cl.getDeclaredMethod(getkey);
         String dvcd = (String) m1.invoke(list.get(i));
    map.put(dvcd , list.get(i));
     
  }
  return map;
 }


测试类

public class ListToMap {

 public static void main(String[] args) throws Exception { 
    
        /*
         * 实列化类 方法2
         */ 
   VideoImage bean = new VideoImage(); 
        bean.setDvcd("1111111111"); 
        bean.setPath("d");
        VideoImage bean1 = new VideoImage(); 
        bean1.setDvcd("1111111112"); 
        bean1.setPath("d");
       
         List<VideoImage> list = new ArrayList<VideoImage>();
         list.add(bean);
         list.add(bean1);
        //得到类对象 
         Map<String,Object> m = listToMap(list,"getDvcd");
         System.out.println(m.get("1111111111").toString());
         System.out.println(m.get("1111111112").toString());
     } 
 /*
  * 将List转为Map 如List<javaBean>转为Map<String,javaBean>
  * 参数List<?>为实体类的列表,getkey为获取主键的方法名
  * 返回值为Map<String,javaBean>
  * rcqjl
  * */
 public  static Map<String,Object> listToMap( List<?> list,String getkey) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException, NoSuchMethodException, SecurityException{
  Map<String,Object> map = new HashMap<String,Object>();
  for(int i=0;i<list.size();i++){
   Class cl = list.get(i).getClass();
         Method m1 = cl.getDeclaredMethod(getkey);
         String dvcd = (String) m1.invoke(list.get(i));
    map.put(dvcd , list.get(i));
     
  }
  return map;
 }
}

0 0