【Java】各种类型转换大全

 

Integer[] 转 String[]

    private static String[] IntegerToString(Integer[] param){
        List<String> LString = new ArrayList<>();
        String[] result;
        for (Integer aParam : param) {
            LString.add(aParam.toString());
        }
        result = LString.toArray(new String[LString.size()]);
        return result;
    }

    public static void main(String[] args){
      Integer[] integers = new Integer[]{1, 2, 3};
      String[] strings = IntegerToString(integers);
        logger.info(Arrays.toString(integers));
        logger.info(Arrays.toString(strings));
    }

Object 转 Integer

    public static void main(String[] args) {
        Object obj = 111;
        Integer integer = new Integer(obj.toString());
        logger.info(String.valueOf(integer));

        Object obj2 = "111";
        Integer integer2 = new Integer(obj2.toString());
        logger.info(String.valueOf(integer2));
    }

对象 转 Integer数组

采用jackson,其maven依赖如下

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-core-asl</artifactId>
            <version>1.9.13</version>
        </dependency>

        <dependency>
            <groupId>org.codehaus.jackson</groupId>
            <artifactId>jackson-mapper-asl</artifactId>
            <version>1.9.13</version>
        </dependency>
    public static Integer[] objectToIntegerArray(Object obj) throws IOException {
        List<Integer> integerList =
                new ObjectMapper()
                        .readValue(
                                obj.toString(),
                                new TypeReference<List<Integer>>() {
                                });
        return integerList.toArray(new Integer[0]);
    }

对象 转 List<String>

maven依赖同上

    public static List<String> objectToListString(Object obj) throws IOException {
        List<String> stringList =
                new ObjectMapper()
                        .readValue(
                                obj.toString(),
                                new TypeReference<List<String>>() {
                                });
        return stringList;
    }

Map 转 Json

采用jackson,其maven依赖如下

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.7.3</version>
		</dependency>
    public static void main(String[] args) throws Exception  {
        Map<String, String> res = new HashMap<>();
        res.put("name", "xiaoming");
        res.put("sex", "man");

        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(res);

        logger.info(String.valueOf(res));
        logger.info(json);
    }

Json 转 Map

maven依赖同上

    public static void main(String[] args) throws Exception  {
        Map<String, String> res = new HashMap<>();
        res.put("name", "xiaoming");
        res.put("sex", "man");

        ObjectMapper mapper = new ObjectMapper();
        String json = mapper.writeValueAsString(res);  // Map转Json

        Map res2 = mapper.readValue(json, Map.class);  // Json转Map
        logger.info(String.valueOf(res));
        logger.info(json);
        logger.info(String.valueOf(res2));
    }

String 转 Map

采用net.sf.json-lib,其maven依赖如下

		<dependency>
			<groupId>net.sf.json-lib</groupId>
			<artifactId>json-lib</artifactId>
			<version>2.4</version>
			<classifier>jdk15</classifier>
		</dependency>
    public static void main(String[] args){
        String str = "{\"ret\":2,\"data\":[{\"id\":1,\"name\":\"aaa\"},{\"id\":2,\"name\":\"bbb\"}]}";
        Map strMap = JSONObject.fromObject(str);
        for (Object object : strMap.keySet()) {
            System.out.println(object +": "+ strMap.get(object));
        }
        System.out.println(strMap);
    }

String 转 JsonArray

maven依赖同上

    public static void main(String[] args){
        String str = "[{\"id\":1,\"name\":\"aaa\"},{\"id\":2,\"name\":\"bbb\"}]";
        JSONArray strArray = JSONArray.fromObject(str);
        System.out.println(str);
        for (int i = 0; i < strArray.size(); i++) {
            System.out.println(strArray.getJSONObject(i));
        }
    }

对象 转 Map

    /**
     * 将对象装换为map
     *
     * @param bean
     * @return
     */
    public static <T> Map<String, Object> beanToMap(T bean) {
        Map<String, Object> map = Maps.newHashMap();
        if (bean != null) {
            BeanMap beanMap = BeanMap.create(bean);
            for (Object key : beanMap.keySet()) {
                map.put(key + "", beanMap.get(key));
            }
        }
        return map;
    }

 Map 转 对象

    /**
     * 将map装换为javabean对象
     *
     * @param map
     * @param bean
     * @return
     */
    public static <T> T mapToBean(Map<String, Object> map, T bean) {
        BeanMap beanMap = BeanMap.create(bean);
        beanMap.putAll(map);
        return bean;
    }

 list对象 转 list Map

    /**
     * 将List<T>转换为List<Map<String, Object>>
     *
     * @param objList
     * @return
     * @throws JsonGenerationException
     * @throws JsonMappingException
     * @throws IOException
     */
    public static <T> List<Map<String, Object>> objectsToMaps(List<T> objList) {
        List<Map<String, Object>> list = Lists.newArrayList();
        if (objList != null && objList.size() > 0) {
            Map<String, Object> map = null;
            T bean = null;
            for (int i = 0, size = objList.size(); i < size; i++) {
                bean = objList.get(i);
                map = beanToMap(bean);
                list.add(map);
            }
        }
        return list;
    }

 list Map 转 list对象

    /**
     * 将List<Map<String,Object>>转换为List<T>
     *
     * @param maps
     * @param clazz
     * @return
     * @throws InstantiationException
     * @throws IllegalAccessException
     */
    public static <T> List<T> mapsToObjects(List<Map<String, Object>> maps, Class<T> clazz)
            throws InstantiationException, IllegalAccessException {
        List<T> list = Lists.newArrayList();
        if (maps != null && maps.size() > 0) {
            Map<String, Object> map = null;
            T bean = null;
            for (int i = 0, size = maps.size(); i < size; i++) {
                map = maps.get(i);
                bean = clazz.newInstance();
                mapToBean(map, bean);
                list.add(bean);
            }
        }
        return list;
    }

Array 转 List

    public static void main(String[] args) {
        String[] s = new String[]{"A", "B", "C", "D","E"};
        List<String> list = Arrays.asList(s);

        System.out.println(list);

        // 浅拷贝,对s的修改会影响list
        s[0] ="AA";
        System.out.println(list);
    }

List 转 Array

    public static void main(String[] args) {
        String[] s = new String[]{"A", "B", "C", "D","E"};
        List<String> list = Arrays.asList(s);

        String[] s2 = list.toArray(new String[s.length]);

        System.out.println(Arrays.toString(s2));

        // 深拷贝,对list的修改不会影响s2
        list.set(0, "AA");
        System.out.println(Arrays.toString(s2));
    }

To Be Continued...

 

本文参考自:https://www.jianshu.com/p/70a626f83336

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
自动类型转换,也称隐式类型转换,是指不需要书写代码,由系统自动完成的类型转换。由于实际开发中这样的类型转换很多,所以Java语言在设计时,没有为该操作设计语法,而是由JVM自动完成。 转换规则 从存储范围小的类型到存储范围大的类型。 具体规则为: byte→short(char)→int→long→float→double 也就是说byte类型的变量可以自动转换为short类型,示例代码: byte b = 10; short sh = b; 这里在赋值时,JVM首先将b的值转换为short类型,然后再赋值给sh。 在类型转换时可以跳跃。示例代码: byte b1 = 100; int n = b1; l 注意问题 在整数之间进行类型转换时,数值不发生改变,而,特将整数类型别是比较大的整数类型转换成小数类型时,由于存储方式不同,有可能存在数据精度的损失。 强制类型转换,也称显式类型转换,是指必须书写代码才能完成的类型转换。该类类型转换很可能存在精度的损失,所以必须书写相应的代码,并且能够忍受该种损失时才进行该类型的转换。 转换规则 从存储范围大的类型到存储范围小的类型。 具体规则为: double→float→long→int→short(char)→byte 语法格式为: (转换到的类型)需要转换的值 示例代码: double d = 3.10; int n = (int)d; 这里将double类型的变量d强制转换成int类型,然后赋值给变量n。需要说明的是小数强制转换为整数,采用的是“去1法”,也就是无条件的舍弃小数点的所有数字,则以上转换出的结果是3。整数强制转换为整数时取数字的低位,例如int类型的变量转换为byte类型时,则只去int类型的低8位(也就是最后一个字节)的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值