精华内容
下载资源
问答
  • java实体类集合按某字段排序方法

    千次阅读 2020-02-29 16:17:47
    今天有个小需求,多个实体类集合合并以后,按照实体类的某个属性(时间)进行排序,自己写的方法太蠢且复杂了,所以在网上找了方法,感觉还是比较简洁有效的,现在记录下来以备后用。 package simpletest; /** ...

    业务场景:
    今天有个小需求,多个实体类的集合合并以后,按照实体类的某个属性(时间)进行排序,自己写的方法太蠢且复杂了,所以在网上找了方法,感觉还是比较简洁有效的,现在记录下来以备后用。

       package simpletest;
    
    /**
     * 测试实体类
     * @author YuanReny1
     *
     */
    public class User {
    	private String name;
    	private String birthDay;
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getBirthDay() {
    		return birthDay;
    	}
    	public void setBirthDay(String birthDay) {
    		this.birthDay = birthDay;
    	}
    	public User(String name, String birthDay) {
    		super();
    		this.name = name;
    		this.birthDay = birthDay;
    	}
    	
    }
    
    package simpletest;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.Comparator;
    import java.util.List;
    
    import org.apache.commons.beanutils.BeanComparator;
    import org.apache.commons.collections.ComparatorUtils;
    import org.apache.commons.collections.comparators.ComparableComparator;
    
    public class ListSortTest {
        
    	/**
    	 * bean的集合按照指定bean的字段排序
    	 * @param list 要排序的集合
    	 * @param filedName 字段名称
    	 * @param ascFlag 是否升序
    	 */
        public static void sort(List list, String filedName, boolean ascFlag) {
            if (list.size() == 0 || filedName.equals("")) {
                return;
            }
            Comparator<?> cmp = ComparableComparator.getInstance();
            if (ascFlag) {
                cmp = ComparatorUtils.nullLowComparator(cmp);
            } else {
                cmp = ComparatorUtils.reversedComparator(cmp);
    
            }
            Collections.sort(list, new BeanComparator(filedName, cmp));
        }
        
        static void test() {
        	List<User> list = new ArrayList<>();
        	list.add(new User("张三", "2020-02-01 16:00:01"));
            list.add(new User("李四", "2020-02-03 08:40:32"));
            list.add(new User("王五", "2020-02-01 09:33:32"));
            sort(list, "birthDay", false);
            for(User u : list) {
            	System.out.println(u.getName() + "-> " + u.getBirthDay());
            }
        }
        
    	public static void main(String[] args) {
    		test();
    	}
    }
    
    

    预期结果:User的集合按照birthDay降序排序
    执行结果:
    在这里插入图片描述
    OK

    展开全文
  • import java.io.IOException;import java.util.ArrayList;import com.fasterxml.jackson.databind.ObjectMapper;import com.fh.panghu.entity.User;import net.sf.json.JSONArray;import net.sf...
    package com.fh.test;
    

    import java.io.IOException;
    import java.util.ArrayList;

    import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fh.panghu.entity.User;

    import net.sf.json.JSONArray;
    import net.sf.json.JSONObject;
    import net.sf.json.JSONSerializer;
    import net.sf.json.JsonConfig;


    /**
     *
     * @author fcbird
     * 借助net.sf.json的第三方jar包帮助类完成实体类与json对象,实体类集合与jsonArray互相转换
     *
     */
    public class TestJsonEntityListMap {
        
        @SuppressWarnings("unchecked")
        public static void getData() {
            
            
            JSONObject objec1t = new JSONObject();
            JSONObject objec2t = new JSONObject();
            JSONArray jsonArray = new JSONArray();
            ArrayList<User> users = new  ArrayList<User>();
            ArrayList<User> users12 = new  ArrayList<User>();
            JsonConfig    jsonConfig =  new JsonConfig();
            ObjectMapper objectMapper=new ObjectMapper();
            User user= new User();            
            User user12= new User();            
            //构造数据
            user.setDdid("ddid");
            user.setMobile("mobile");
            user.setUserid("password");
            user.setPassword("userid");
            user.setUsername("username");
            
            user12.setDdid("ddid1");
            user12.setMobile("mobile1");
            user12.setUserid("password1");
            user12.setPassword("userid1");
            user12.setUsername("username1");
            
            objec1t.put("ddid", "ddid1");
            objec1t.put("mobile", "mobile1");
            objec1t.put("password", "password1");
            objec1t.put("userid", "userid1");
            objec1t.put("username", "username1");    
            
            objec2t.put("ddid", "ddid2");
            objec2t.put("mobile", "mobile2");
            objec2t.put("password", "password2");
            objec2t.put("userid", "userid2");
            objec2t.put("username", "username2");    
            
            users.add(user);
            users.add(user12);
            
            jsonArray.add(objec1t);
            jsonArray.add(objec2t);
                
            //实体转为JSON对象
            //实体转为JSON对象第一种
            String jsonString1 = JSONSerializer.toJSON(user).toString();
            //实体转为JSON对象第二种
            String jsonString2 = JSONObject.fromObject(user).toString();
            //JSON对象转为实体
            //JSON对象转为实体第一种
            User user1=(User)JSONObject.toBean(objec1t, User.class);
            User user2 = new User();
            try {
                //JSON对象转为实体第二种
                user2=objectMapper.readValue(objec1t.toString(), User.class);
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            
            //实体类集合转为JSONArray
            String jsonArrayString = JSONArray.fromObject(users, jsonConfig).toString();    

            users12 = (ArrayList<User>) JSONArray.toCollection(jsonArray,User.class);
            
            System.out.println("实体转为json1:"+jsonString1);
            System.out.println("实体转为json2:"+jsonString2);
            System.out.println("json1转为实体:"+user1);
            System.out.println("json2转为实体:"+user2);
            System.out.println("实体集合转为jsonArray:"+jsonArrayString);
            System.out.println("jsonArray转为实体集合:"+users12);
            
        }
        public static void main(String[] args) {
            getData();
        }
    }

    测试结果截图:


    展开全文
  • 网上有好多实体转另一个实体的方法,但是几乎没有实体集合直接转另一个实体集合的工具,自己写了一个,供大家使用。其实原理很简单,就是泛型。
  • Java基础——Java实体类与Map集合互转

    千次阅读 2019-05-28 20:49:36
    废话不说,直接上代码!留着用吧... ...import java.beans.BeanInfo; import java.beans.IntrospectionException; import java.beans.Introspector; import java.beans.PropertyDescriptor; import ja...

    废话不说,直接上代码!留着用吧...

    package com.ddm.message.test;

    import java.beans.BeanInfo;
    import java.beans.IntrospectionException;
    import java.beans.Introspector;
    import java.beans.PropertyDescriptor;
    import java.lang.reflect.Field;
    import java.lang.reflect.InvocationTargetException;
    import java.lang.reflect.Method;
    import java.util.HashMap;
    import java.util.Map;

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;

    /**
     * Java实体类与Map互转
     * @author Administrator
     *
     */
    public class entityMapTransUtils {
        private static final Logger logger = LoggerFactory.getLogger(entityMapTransUtils.class);
        /**
         * Java实体类转Map:方法一
         * @param obj
         * @return
         */
        public static Map<String, Object> entityToMap1(Object obj){
            Map<String, Object> map = new HashMap<String, Object>();
            Class<?> clazz = obj.getClass();
            for(Field field : clazz.getDeclaredFields()){
                field.setAccessible(true);
                String fieldName = field.getName();
                Object object = null;
                try {
                    object = field.get(obj);
                } catch (IllegalArgumentException | IllegalAccessException e) {
                    logger.info(e.getMessage());
                }
                map.put(fieldName, object);
            }
            return map;
        }

        /**
         * Java实体类转Map:方法二
         * @param obj
         * @return
         */
        public static Map<String, Object> entityToMap2(Object obj){
            Map<String, Object> map = new HashMap<String, Object>();
            try {
                BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass());
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
                for (PropertyDescriptor property : propertyDescriptors) {
                    String key = property.getName();
                    // 过滤class属性
                    if (!key.equals("class")) {
                        // 得到property对应的getter方法
                        Method getter = property.getReadMethod();
                        Object value = getter.invoke(obj);
                        map.put(key, value);
                    }
                }
            } catch (Exception e) {
                logger.info(e.getMessage());
            }
            return map;
        }
        
        /**
         * Map转实体类:要转换的Map的key跟实体类属性名相同的数据会转过去,不相同的字段会为null
         * @param clazz
         * @param map
         * @return
         */
        public static <T> T mapToEntity1(Class<T> clazz,Map<String, Object> map){
            T obj = null;
            try {
                BeanInfo beanInfo = Introspector.getBeanInfo(clazz);
                obj = clazz.newInstance(); // 创建 JavaBean 对象
                PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors();
                // 给 JavaBean 对象的属性赋值
                for (int i = 0; i < propertyDescriptors.length; i++) {
                    PropertyDescriptor descriptor = propertyDescriptors[i];
                    String propertyName = descriptor.getName();
                    if (map.containsKey(propertyName)) {
                        Object value = map.get(propertyName);
                        Object[] args = new Object[1];
                        args[0] = value;
                        try {
                            descriptor.getWriteMethod().invoke(obj, args);
                        } catch (InvocationTargetException e) {
                            logger.info(e.getMessage());
                        }
                    }
                }
            } catch (IllegalAccessException e) {
                logger.info(e.getMessage());
            } catch (IntrospectionException e) {
                logger.info(e.getMessage());
            } catch (IllegalArgumentException e) {
                logger.info(e.getMessage());
            } catch (InstantiationException e) {
                logger.info(e.getMessage());
            }
            return (T)obj;
        }
    }

     

    展开全文
  • ArrayList是Java集合框架中一个经典的实现。他比起常用的数组而言,明显的优点在于,可以随意的添加和删除元素而不需考虑数组的大小。下面跟着小编一起来看下吧
  • 实现list不同泛型之间实体的互转,基于java8新特性+反射机制实现list不同实体类互转,将jdk8的流处理集合互转抽出来成一个工具类,实现lsit
  • java 批量设置实体类集合里面某一个属性的值 业务场景: 多个实体类的集合,某一个属性批量统一设值。 例如 :user实体类,包含属性 id、name、sex 现在有100多个user 要把他们的sex全部设为 男,一般的办法就是把...

    java 批量设置实体类集合里面某一个属性的值

    业务场景:
    多个实体类的集合,某一个属性批量统一设值。

    例如 :user实体类,包含属性 id、name、sex
    现在有100多个user 要把他们的sex全部设为 男,一般的办法就是把这些user装在一个list集合中,然后遍历把值set进去。现在我就把这个功能抽取出来做成了一个工具类,代码如下

    /**
    * 批量设置实体类集合里面某一个属性的值
    * @param entitys    目标实体类集合
    * @param key   目标属性
    * @param value 值
    * @return
    * @throws IllegalAccessException
    */
    public <E> void setValue(List<E> entitys, String key, Object value) throws IllegalAccessException {
       for (Object list:entitys) {
           Class aClass = list.getClass();
           Field[] aFields = aClass.getDeclaredFields();//获取实体类的所有属性
           for (Field f:aFields) {
               if (f.getName().equals(key)){
                   f.setAccessible(true);//设置访问权限
                   f.set(list,value);//赋值
               }
           }
       }
    }
    

    通过java反射机制拿到类所有声明的字段,然后遍历与目标属性的name进行匹配。

    注意:在Java中可以通过反射进行获取实体类中的字段值,当未设置Field的setAccessible方法为true时,会在调用的时候进行访问安全检查,会抛出IllegalAccessException异常。所以set的时候先设置为true

    展开全文
  • Java实体类:是指与数据库中相对应的表,成一一对应关系,实体类中的字段包括字段名和字段类型,往数据库中存的是字段值单个的。业务复杂的情况下,需要实体类中还要包含List<实体类>,举例来说,问题表中有...
  • 我现在用实体类接收到数据存到list集合里,要拿第一条数据x1y1的点和第二条数据的x2y2进行比对,如果x1y1与x2y2重复,我删掉x2y2的这一条数据,再拿第一条和第三条比对,如果x1y1的点距离x3y3的点小于0.5,那我也删掉...
  • 1.//实体类中重写equals与hashCode方法 package test; public class Student { private String name; private String age; private String sex; //......省略getset方法 @Override public boolean equ
  • 需要从几个对象的集合中取出对象的某些属性。怎么办呢?哪就利用反射机制写个方法吧。思路入参首先是几个对象的集合,那么方法的入参就是 list<?> 因为是不同对象所以还是得用泛型。用反射当然得有 参数Class<?> ...
  • for (ProductSkuBranch productSkuBranch : list) { //插入实体类数据的接口 count = queryDeptsService.count(productSkuBranch); } return filterNull(json); } } Maper Integer count(ProductSkuBranch ...
  • java:实体类对象转换为Map集合

    千次阅读 2019-04-19 09:37:49
    public static Map<String,Object> getFiledInfo(Object o) { Map<String,Object> parameters = new HashMap<>(); Field[] fields = o.getClass().getDeclaredFields();... ...
  • Java基础知识面试题(2020最新版)

    万次阅读 多人点赞 2020-02-19 12:11:27
    文章目录Java概述何为编程什么是Javajdk1.5之后的三大版本JVM、JRE和JDK的关系什么是跨平台性?原理是什么Java语言有哪些特点什么是字节码?采用字节码的最大好处是什么什么是Java程序的主类?应用程序和小程序的...
  • Java知识体系最强总结(2021版)

    万次阅读 多人点赞 2019-12-18 10:09:56
    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同...
  • 在业务中,我们接受前端传来的对象VO后,为了方便业务,需要把VO转换成BO或者数据库映射的实体类,这时候就需要借助Dozer来直接转换完成。 1.pom引入: <dependency> <groupId>net.sf.dozer</...
  • Java实体类注释处理-笔记

    千次阅读 2019-12-10 23:48:50
    背景 在java实体bean处理的过程中,需要将实体类的属性与注释向对应起来。 /** * userId编号 */ private Integer userId; //用户姓名 private String userName;...上面的java实体类的代码希望转...
  • java常用实体类集合类.

    千次阅读 2013-01-24 16:30:12
    二、实体类应该实现java.io.Serializable接口。 三、实体类应该有个无参的构造方法。 四、实体类应该有个有参(所有的参数)的构造方法。 五、实体类有属性和方法,属性对应数据库中表的字段,方法主要有getter和...
  • java代码实现生成实体类带详细注释

    千次阅读 2019-05-30 00:04:20
    代码是别人写好的,我只是在上面做了些修改,希望能给那些有需要的人...import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWriter; import java.sql.Connection; ...
  • 正确做法是实体类新建要在循环的方法体重,如果放在方法体外,最后得到的实体类都是最后一次的赋值for (String data : list3) {INFO_FG fg = new INFO_FG()fg.setErr(data.geturl);}...
  • Java 实体类list转换为map

    千次阅读 2020-08-06 17:26:59
    User为我们创建的一个用户实体类 现在我们要将用户集合中的用户名和密码转换为一个map getUserName和getPwd对应User实体类中的get方法的方法名 List<User> userList = new ArrayList<User>(); Map<...
  • Java实体类定义 在实际使用中一般是数据库对应的实体类,运用工具生成就好,如mybatis-generator import java.io.Serializable; public class User implements Serializable { private Integer id; private ...
  • Java面试题大全(2020版)

    万次阅读 多人点赞 2019-11-26 11:59:06
    发现网上很多Java面试题都没有答案,所以花了很长时间搜集整理出来了这套Java面试题大全,希望对大家有帮助哈~ 本套Java面试题大全,全的不能再全,哈哈~ 一、Java 基础 1. JDK 和 JRE 有什么区别? JDK:Java ...
  • Java中的数据类型和SQL中的数据类型有很多不一样,需要仔细区分,不然易在开发中造成莫名的错误。 Java数据类型 Hibernate数据类型 标准SQL数据类型 (PS:对于不同的DB可能有所差异) ...
  • 直接上代码,注释非常详细:-----//直接拷贝可用 ...import java.lang.reflect.Method; import java.util.Collections; import java.util.Comparator; import java.util.List; public class ListSortUtil { /**
  • java获取实体类的属性和值

    万次阅读 2018-03-08 20:47:02
    import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;import java.lang.reflect.Method;import java.util.Date;/** * Java通过实例得到实体类中的属性和方法 * @author Ad...
  • java xml与实体类转换

    千次阅读 2018-01-05 16:07:33
    只能在getter/setter方法上使用@XmlElement和@XmlAttribute注解,否则由java对象生成xml时会报同一个属性在java类里存在两次的错误。 同理,如果@XmlAccessorType的访问权限为XmlAccessType.NONE,如果在java的...
  • java开发当中什么是实体类

    千次阅读 2019-08-02 00:06:20
    这里写我的自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、...
  • 本工程用于研究Java对象和集合与Json之间的互相转换 本工程编码方式:UTF-8 注意:由于User中为方便生成User实例创建了有参的User构造方法,所以也要创建无参的构造方法,否则将出现如本工程图01.jpg所示的异常...
  • java万能实体类PageData

    千次阅读 2019-09-09 08:30:13
    这是一个获取前端get/post数据的工具,简单,方便,易理解,详细如下!! 详细代码 注:该工具仅用于json格式的数据,没有json则需如下几步操作!!!! 首先引入gson的Maven依赖 <dependency> <...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 142,875
精华内容 57,150
关键字:

如何创建java实体类集合

java 订阅