Python 官方文档:入门教程 => 点击学习
目录概述行列互转键值互换sort排序操作join连接操作过滤转换操作获取get总结概述 Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关api的学习成本,提高工
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关api的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。
目前公司项目中主要采用Hutool作为项目的工具包,相对于Google的guava, hutool的工具类采用中文注释,更加符合国人使用。所谓知己知彼,我们需要了解Hutool都具有什么样的功能,才能够最大化发挥它的价值。
本文主要就hutool 5.8.8版本, 介绍其中一个操作Map哈希表的工具类MapUtil,我这边主要介绍几个比较好用的方法。
大家是不是遇到过将多个map以key进行分组,然后相同key下的value合并成一个list的场景,现在可以通过下面的行列互转的方式轻松解决。
@Test
public void toListMapTest() {
Map<String, String> map1 = MapUtil.of("a", "1");
Map<String, String> map2 = MapUtil.of("a", "5");
Map<String, String> map3 = MapUtil.of("b", "4");
Map<String, String> map4 = MapUtil.of("a", "5");
List<Map<String, String>> maps = new ArrayList<>();
maps.add(map1);
maps.add(map2);
maps.add(map3);
maps.add(map4);
// 调用toListMap, 将list转为map
System.out.println("toListMap: ");
Map<String, List<String>> listMap = MapUtil.toListMap(maps);
System.out.println(listMap);
// toMapList, 将map转为list
System.out.println("toMapList: ");
List<Map<String, String>> mapList = MapUtil.toMapList(listMap);
System.out.println(mapList);
}
结果:
@Test
public void inverseTest() {
Map<String, String> map = MapUtil.newHashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "1");
Map<String, String> inverse = MapUtil.inverse(map);
System.out.println(inverse);
}
结果:
sort(Map<K, V> map): 排序已有Map,Key有序的Map,使用默认Key排序方式(字母顺序)
sort(Map<K, V> map, Comparator<? super K> comparator):排序已有Map,Key有序的Map
sortByValue(Map<K, V> map, boolean isDesc):按照值排序,可选是否倒序
@Test
public void sortTest() {
Map<String, String> map = MapUtil.newHashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "1");
// 排序, 不会改变原来的值
Map<String, String> newMap = MapUtil.sortByValue(map, true);
System.out.println(newMap);
}
结果:
@Test
public void joinTest() {
Map<String, String> map = MapUtil.newHashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "1");
// join
String str = MapUtil.join(map, ",", "-");
System.out.println(str);
}
@Test
public void filterTest() {
Map<String, String> map = MapUtil.newHashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "3");
map.put("d", "4");
// 过滤出被2整除的数据
Map<String, String> map2 = MapUtil.filter(map, t -> Convert.toInt(t.getValue()) % 2 == 0);
Assert.assertEquals(2, map2.size());
Assert.assertEquals("2", map2.get("b"));
Assert.assertEquals("4", map2.get("d"));
}
@Test
public void mapTest() {
// Add test like a foreigner
Map<Integer, String> adjectivesMap = MapUtil.<Integer, String>builder()
.put(0, "lovely")
.put(1, "friendly")
.put(2, "happily")
.build();
// 转换操作
Map<Integer, String> resultMap = MapUtil.map(adjectivesMap, (k, v) -> v + " " + PeopleEnum.values()[k].name().toLowerCase());
Assert.assertEquals("lovely girl", resultMap.get(0));
Assert.assertEquals("friendly boy", resultMap.get(1));
Assert.assertEquals("happily child", resultMap.get(2));
}
get操作一定是map非常常用的方法,原生的get方法非常不好用,有时候还需要进行判断类型等。
@Test
public void getTest() {
Map<String, Object> map = MapUtil.newHashMap();
map.put("a", "1");
map.put("b", "2");
map.put("c", "1");
map.put("age", 20);
String value = MapUtil.getStr(map, "a");
Assert.assertEquals(value, "1");
int val = MapUtil.getInt(map, "age", 18);
Assert.assertTrue(val == 20);
}
本文总结了MapUtil常用的一些操作,具体的大家可以查看源码,都非常简单,更多关于Hutool MapUtil工具类的资料请关注编程网其它相关文章!
--结束END--
本文标题: Hutool开发MapUtil工具类使用示例
本文链接: https://lsjlt.com/news/168869.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0