首页 归档 关于 文件 Github
×

Map的链式操作

2022-08-24 14:12:08
J-Tools
  • Map
本文总阅读量(次):
本文字数统计(字):477
本文阅读时长(分):2

创建Map数据:new HashMap<>(),new LinkedHashMap<>();

示例

1
2
3
4
5
6
7
8
9
10
Map<String, String> params1 = new MapDataUtil<String, String>().of().get();
Map<String, String> params2 = new MapDataUtil<String, String>().of(true).get();

Map<Integer, Integer> params3 = new MapDataUtil<Integer, Integer>().of().get();
Map<Integer, Integer> params4 = new MapDataUtil<Integer, Integer>().of(true).get();

Map<Object, Object> params5 = new MapDataUtil<Object, Object>().of().get();
Map<Object, Object> params6 = new MapDataUtil<Object, Object>().of(true).get();

Map<Object, Object> objectMap2 = MapDataUtil.builder().get();

全部代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;

/**
* author :demon
* date :2022 2022/4/5 15:45
* desc :创建Map数据
* <p>
* 使用:order:创建是否排序
* <p>
* 1:Map<String, Object> objectMap1 = new MapDataUtil<String, Object>().of().put("a", "1").put("b", 1).get();
* <p>
* 2:Map<Object, Object> objectMap2 = MapDataUtil.builder().put("a", "1").put("b", 1).get();
*/
public class MapDataUtil<K, V> {

/**
* 返回指定类型的Map结构
* 无序
*/
public static <K, V> Builder<K, V> builder() {
return new Builder<>(false);
}

/**
* 返回指定类型的Map结构
* 有序
*/
public static <K, V> Builder<K, V> builder(boolean order) {
return new Builder<>(order);
}

/**
* 返回指定类型的Map结构
* 无序
*/
public Builder<K, V> of() {
return new Builder<>(false);
}

/**
* 返回指定类型的Map结构
* 有序
*/
public Builder<K, V> of(boolean order) {
return new Builder<>(order);
}

/**
* 构建Map结构数据
*/
public static final class Builder<K, V> {

private Map<K, V> map;
private boolean underConstruction;

private Builder(boolean order) {
if (order) {
map = new LinkedHashMap<>();
} else {
map = new HashMap<>();
}
underConstruction = true;
}

public Builder<K, V> put(K k, V v) {
if (!underConstruction) {
throw new IllegalStateException("Map已经初始化,不可重复创建!!");
}
map.put(k, v);
return this;
}

public Map<K, V> get() {
if (!underConstruction) {
throw new IllegalStateException("Map已经初始化,不可重复创建!!");
}
underConstruction = false;
return map;
}
}


}
完
json数据的转换(Jackson)
SpringBoot之自定义MyBatis-Plus配置

本文标题:Map的链式操作

文章作者:十二

发布时间:2022-08-24 14:12:08

最后更新:2022-08-24 16:56:34

原始链接:https://www.zhuqiaolun.com/2022/08/1661321528152/1661321528152/

许可协议:署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

头像

十二

我想起那天夕阳下的奔跑,那是我逝去的青春。

分类

  • Blog4
  • ElasticSearch13
  • Freemarker2
  • Git2
  • Go-FastDfs2
  • IDEA2
  • J-Package6
  • J-Tools21
  • Java2
  • JavaFx3
  • Kafka4
  • Linux2
  • Logger5
  • Maven5
  • MyBatis6
  • MyCat3
  • MySql2
  • Nginx5
  • OceanBase1
  • RabbitMq4
  • Redis6
  • SVN1
  • SpringBoot11
  • Tomcat6
  • WebService2
  • Windows2
  • kubernetes10

归档

  • 二月 20251
  • 十二月 20244
  • 八月 202416
  • 六月 20241
  • 九月 20231
  • 八月 20231
  • 七月 20232
  • 八月 20222
  • 三月 202214
  • 二月 20224
  • 十一月 20211
  • 七月 20215
  • 六月 20213
  • 五月 20213
  • 四月 20211
  • 三月 202116
  • 二月 20212
  • 一月 20211
  • 十一月 202014
  • 十月 20201
  • 九月 202014
  • 八月 20205
  • 七月 20204
  • 六月 20208
  • 五月 20208

作品

我的微信 我的文件

网站信息

本站运行时间统计: 载入中...
本站文章字数统计:96.9k
本站文章数量统计:132
© 2025 十二  |  鄂ICP备18019781号-1  |  鄂公网安备42118202000044号
驱动于 Hexo  | 主题 antiquity  |  不蒜子告之 阁下是第个访客
首页 归档 关于 文件 Github