java Map常用方法封装

CreationTime--2018年7月16日15点59分

Author:Marydon

1.准备工作

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
import java.util.SortedMap;
import java.util.TreeMap;
import org.apache.log4j.Logger; /**
* Map数据处理工具类
* @explain
* @author Marydon
* @creationTime 2018年7月9日上午9:17:37
* @version 1.0
* @since
* @email marydon20170307@163.com
*/
public class MapUtils { private static Logger log = Logger.getLogger(MapUtils.class);
}

2.无序Map转换成有序Map

/**
* 将无序Map转换成有序Map
* @explain 将参数按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,
* 以此类推通过SortedMap可以实现
* @param paramsMap
* @return Map 按ASCII码升序排列
*/
public static Map<String, Object> toSortedMap(Map<String, Object> paramsMap) {
// 用于存储接收到的key:value,并按key以ASCII码进行升序排列组合
SortedMap<String, Object> data = new TreeMap<String, Object>();
// 获取Map对象中的键值对对象
Set<Entry<String, Object>> entrySet = paramsMap.entrySet();
Entry<String, Object> entry = null;
String key = "";
Object value = null;
// 遍历paramsMap数据,添加到SortedMap对象
for (Iterator<Entry<String, Object>> iterator = entrySet.iterator(); iterator.hasNext();) {
entry = iterator.next();
key = entry.getKey();
value = entry.getValue();
data.put(key, value);
}
log.info("Map-->SortedMap:" + data);
return data;
}

3.将map的value转化成String类型

/**
* Map<String, Object>-->Map<String, String>
* @explain 前提:value必须为String类型
* @param paramsMap
* @return
* @throws Exception
*/
public static Map<String, String> toStringMap(Map<String, Object> paramsMap) throws Exception{
Map<String, String> data = new HashMap<String, String>();
// 获取Map对象中的键值对对象
Set<Entry<String, Object>> entrySet = paramsMap.entrySet();
Entry<String, Object> entry = null;
String key = "";
String value = null;
for (Iterator<Entry<String, Object>> iterator = entrySet.iterator(); iterator.hasNext();) {
entry = iterator.next();
key = entry.getKey();
if (key instanceof String) {
value = (String) entry.getValue();
data.put(key, value);
} else {
log.error("Map中含有非String类型的值,对应的key=" + key);
throw new Exception("Map中含有非String类型的值,对应的key=" + key);
}
}
log.info("Map<String, Object>-->Map<String, String>:" + data);
return data;
}

4.将map的value转化成Object类型

/**
* Map<String, String>-->Map<String, Object>
* @explain 将value转换成Object类型
* @param paramsMap
* @return
*/
public static Map<String, Object> toObjectMap(Map<String, String> paramsMap){
Map<String, Object> data = new HashMap<String, Object>();
// 获取Map对象中的键值对对象
Set<Entry<String, String>> entrySet = paramsMap.entrySet();
Entry<String, String> entry = null;
String key = "";
Object value = null;
for (Iterator<Entry<String, String>> iterator = entrySet.iterator(); iterator.hasNext();) {
entry = iterator.next();
key = entry.getKey();
value = entry.getValue();
data.put(key, value);
}
log.info("Map<String, String>-->Map<String, Object>:" + data);
return data;
}

5.将map的key小写转换成大写

/**
* key 小写-->大写
* @explain 将key改为大写
* @param paramsMap
* @return
*/
public static Map<String, Object> toUpperMap(Map<String, Object> paramsMap){
Map<String, Object> data = new HashMap<String, Object>();
// 获取Map对象中的键值对对象
Set<Entry<String, Object>> entrySet = paramsMap.entrySet();
Entry<String, Object> entry = null;
String key = "";
Object value = null;
for (Iterator<Entry<String, Object>> iterator = entrySet.iterator(); iterator.hasNext();) {
entry = iterator.next();
key = entry.getKey().toUpperCase();
value = entry.getValue();
data.put(key, value);
}
log.info("Map 小写-->大写:" + data);
return data;
}
 

java Map常用方法封装的更多相关文章

  1. HttpClient 常用方法封装

    简介 在平时写代码中,经常需要对接口进行访问,对于 http 协议 rest 风格的接口请求,大多使用 HttpClient 工具进行编写,想着方便就寻思着把一些常用的方法进行封装,便于平时快速的使用 ...

  2. Java Map 集合实现类

    Map 用于保存具有映射关系的数据,集合里会保存两组值,一组用于保存Map里的key,一组用于保存Map里的value,key与map可以是任何引用类型数据.Map的key不允许重复.key与valu ...

  3. java:Map借口及其子类

    java:Map借口及其子类 Conllection是保存单值最大得父接口(即没有key的数据),那么Map是保存的内容是一对键值的数据,即KEY->VALUE的形式保存,如电话簿等. Map常 ...

  4. 【SpringBoot】 Java中如何封装Http请求,以及JSON多层嵌套解析

    前言 本文中的内容其实严格来说不算springboot里面的特性,属于JAVA基础,只是我在项目中遇到了,特归纳总结一下. HTTP请求封装 目前JAVA对于HTTP封装主要有三种方式: 1. JAV ...

  5. Java数据库连接池封装与用法

    Java数据库连接池封装与用法 修改于抄袭版本,那货写的有点BUG,两个类,一个用法 ConnectionPool类: package com.vl.sql; import java.sql.Conn ...

  6. Java—继承、封装、抽象、多态

    类.对象和包 1) 面向对象编程(Object Oriented Programming ,简称 OOP):20世纪70年代以后开始流行. 2) 结构化编程与面向对象编程的区别: A. 在结构化编程中 ...

  7. Java中的封装

    在前面的一些日子里,一只都在学习C#语言,使用C#在做一些小项目的,今天转到了Java的学习,还是感觉有点的不习惯,没有以前的中文界面的,全是英文.写起代码来都一直保持着C#中的编码的习惯,但是学习J ...

  8. 使用Map List 封装json数据

    <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>json-lib</art ...

  9. java Map实现的cache manager

    一个模仿memcached的JAVA虚拟缓存工具,可以缓存java对象 import java.io.ByteArrayInputStream; import java.io.ByteArrayOut ...

随机推荐

  1. 代码实现Android5.0的下拉刷新效果

    如图所示,实现类似与gmail的下拉刷新. 项目地址:https://github.com/stormzhang/SwipeRefreshLayoutDemo 一.在xml文件中定义 这个控件在sup ...

  2. information_schema系列七

    information_schema系列七   这个系列的文章主要是为了能够让自己了解MySQL5.7的一些系统表,统一做一下备注和使用,也希望分享出来让大家能够有一点点的受益. 第七篇主要看一下一下 ...

  3. java HttpServletRequest和HttpServletResponse詳解

    這篇文章主要介紹瞭java HttpServletRequest和HttpServletResponse詳解的相關資料,需要的朋友可以參考下 java HttpServletRequest和HttpS ...

  4. CountDownLatch使用场景及分析

    JDk1.5提供了一个非常有用的包,Concurrent包,这个包主要用来操作一些并发操作,提供一些并发类,可以方便在项目当中傻瓜式应用. JDK1.5以前,使用并发操作,都是通过Thread,Run ...

  5. HTTPS安全证书介绍

    IIS配置web SSL 安全证书Https访问 From : http://cao416451347ming.blog.163.com/blog/static/1154556162010217441 ...

  6. 5.数字拆分成4段,怎样使得4段的乘积最小【dp】

    题目是:给出一个数字(10,000-100,000,000),把这个数字拆分成4段,怎样使得4段的乘积最小.比如12345拆分成1*2*3*45=270, 10000=1*00*0*0=0. 解题分析 ...

  7. 用 .NET Memory Profiler 跟踪.net 应用内存使用情况--基本应用篇(转)

    .net 框架号称永远不会发生内存泄漏,原因是其引入了内存回收的机制.但实际应用中,往往我们分配了对象但没有释放指向该对象的引用,导致对象永远无法释放.最 常见的情况就是给对象添加了事件处理函数,但当 ...

  8. 鼠标悬浮在img上让图片变大

    样式: <style type="text/css">        img:hover{ transform:scale(1.02,1.02)}</style& ...

  9. java字符编码转换

    在开发的过程中.字符编码经常令我们头痛.经常会出现各种各样的乱码.以下就介绍java的编码转换和常见的乱码是使用什么样的编码去读取的: 先看一张图片: watermark/2/text/aHR0cDo ...

  10. Laravel5.5 Jwt 1.0 beta 配置

    https://github.com/tymondesigns/jwt-auth/issues/860 1 下载开发者版本   image.png 修改composer.json,添加 "t ...