内容

  • 是Apache组织下的commons-collections包中的工具类
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
  • Map操作相关的,最常用和null值相关

使用

  • 取值
public static String getString(final Map map, final Object key) {
if (map != null) {
Object answer = map.get(key);
if (answer != null) {
return answer.toString();
}
}
return null;
} public static String getString( Map map, Object key, String defaultValue ) {
String answer = getString( map, key );
if ( answer == null ) {
answer = defaultValue;
}
return answer;
}

取值,二元参数无默认字符串;

同样有针对其他类型的取值方法;

  • 赋值
putAll()

public static void safeAddToMap(Map map, Object key, Object value) throws NullPointerException {
if (value == null) {
map.put(key, "");
} else {
map.put(key, value);
}
}

一个是putAll,数组加入map中;

一个是safeAdd,不加入null值;

  • 操作
//排序
public static Map orderedMap(Map map) {
return ListOrderedMap.decorate(map);
} //反转,key value互换
public static Map invertMap(Map map) {
Map out = new HashMap(map.size());
for (Iterator it = map.entrySet().iterator(); it.hasNext();) {
Map.Entry entry = (Map.Entry) it.next();
out.put(entry.getValue(), entry.getKey());
}
return out;
}
@Test
public void testMapUtils() {
Map<String,String> map = new HashMap<>();
map.put("shit","Happens");
map.put("0","1");
log.info("{}",MapUtils.getString(map,"shi222t","hhhhh"));
log.info("order:{}",MapUtils.orderedMap(map));
log.info("invert:{}",MapUtils.invertMap(map));
} [INFO ] 2018-10-30 14:07:42,144 method:com.andy.dot.TestAllDots.testMapUtils(TestAllDots.java:177)
hhhhh
[INFO ] 2018-10-30 14:07:42,276 method:com.andy.dot.TestAllDots.testMapUtils(TestAllDots.java:178)
order:{0=1, shit=Happens}
[INFO ] 2018-10-30 14:07:42,277 method:com.andy.dot.TestAllDots.testMapUtils(TestAllDots.java:179)
invert:{Happens=shit, 1=0}

参考文章

最新文章

  1. JavaScript 入门教程四 语言基础【3】
  2. C# 控制datagridview的combox属性的列绑定数据
  3. ORACLE SQL调优案例一则
  4. 043医疗项目-模块四:采购单模块—采购单明细查询(Dao,Service,Action三层)
  5. st_mode 的位定义
  6. mysql distinct跟group by性能
  7. QString内部仍采用UTF-16存储数据且不会改变(一共10种不同情况下的编码)
  8. insert例子
  9. QR Code 码
  10. PHP面向对象基础实例
  11. UVALive 2522 Chocolate(概率DP)
  12. Webpack 打包之体积优化
  13. SimpleMembership续
  14. R语言的神奇之基于向量
  15. JAVA EE 的学习目标
  16. RTX任务管理
  17. ABP框架系列之四十四:(OWIN)
  18. Tomcat8.5配置https启动报空指针错误
  19. VMware Linux 共享文件夹 虚拟机无共享文件解决方法
  20. 《DSP using MATLAB》Problem 4.2

热门文章

  1. Abstract factory抽象工厂--对象创建型
  2. - &gt; 动规讲解基础讲解四——矩阵取数
  3. linux内核研究-8-块设备I/O层
  4. 6.6 random--伪随机数的生成
  5. go语言笔记——调试还很弱,用gdb来做?可用panic和defer。格式化代码使用gofmt,貌似我的vim插件是自带
  6. WebSocket握手总结
  7. Oracle查询列重命名
  8. zabbix监控kafka消费
  9. nginx 反向跳转
  10. Dockerfile镜像的制作