日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java ImmutableMap的使用說明

瀏覽:129日期:2022-08-11 08:26:55
ImmutableMap:一個不可變集合

java中的Immutable對象:

簡單地說,如果一個對象實例不能被更改就是一個Immutable的對象,Java SDK提供的大量值對象,比如String等都是Immutable的對象。

創(chuàng)建ImmutableMap:

Map<String,Object> immutableMap = new ImmutableMap.Builder<String,Object>().build();

在創(chuàng)建時放值:

Map<String,Object> immutableMap = new ImmutableMap.Builder<String,Object>() .put('k1','v1') .put('k2','v2') .build();

創(chuàng)建后不可變:

immutableMap.put('k1','v3');//會拋出java.lang.UnsupportedOperationExceptionImmutableMap中key和value均不能為null,放入null值會拋出NPE

ImmutableMap的使用場景:

適合

1、確定性的配置, 比如根據(jù)不同的key值得到不同的請求url

2、寫單元測試

不適合

1、key, value為未知參數(shù), 可能有null產生的情況

guava中ImmutableMap使用示例及好處

ImmutableMap是不可變的,線程安全的;它可以創(chuàng)建一些常量的映射鍵值對;他提供了很多的組合鍵值對的方法,源碼中使用了一個靜態(tài)內部類來組裝構建ImmutableMap,靜態(tài)內部類作為外部類的輔助構建ImmutableMap,內部使用final聲明了一個ArrayList變量。

public static class Builder<K, V>{ final ArrayList<Map.Entry<K, V>> entries = Lists.newArrayList(); public Builder() {} public Builder<K, V> put(K key, V value) { this.entries.add(ImmutableMap.entryOf(key, value)); return this; } public Builder<K, V> put(Map.Entry<? extends K, ? extends V> entry) { K key = entry.getKey(); V value = entry.getValue(); if ((entry instanceof ImmutableEntry)) {Preconditions.checkNotNull(key);Preconditions.checkNotNull(value);Map.Entry<K, V> immutableEntry = entry;this.entries.add(immutableEntry); } else {this.entries.add(ImmutableMap.entryOf(key, value)); } return this; } public Builder<K, V> putAll(Map<? extends K, ? extends V> map) { this.entries.ensureCapacity(this.entries.size() + map.size()); for (Map.Entry<? extends K, ? extends V> entry : map.entrySet()) {put(entry.getKey(), entry.getValue()); } return this; } public ImmutableMap<K, V> build() { return fromEntryList(this.entries); } private static <K, V> ImmutableMap<K, V> fromEntryList(List<Map.Entry<K, V>> entries) { int size = entries.size(); switch (size) { case 0: return ImmutableMap.of(); case 1: return new SingletonImmutableBiMap((Map.Entry)Iterables.getOnlyElement(entries)); } Map.Entry<?, ?>[] entryArray = (Map.Entry[])entries.toArray(new Map.Entry[entries.size()]); return new RegularImmutableMap(entryArray); } }

之前我們判斷取值結果可以使用if else形式:

int a = 1;if(a == 1) { System.out.println(a);} else { System.out.println(a);}

或者使用switch方式:

int a = 1;switch (a) {case 1: System.out.println(a); break;case 2: System.out.println(a);default: System.out.println(a); break;}

現(xiàn)在可以使用ImmutableMap集合來組裝鍵值對,這樣的組合方式既簡單又省去了大量多余的代碼:

ImmutableMap<String, Object> map = ImmutableMap .<String, Object>builder() .put('1', '1') .put('2', '2') .put('3', '3') .build();

ImmutableMap<String, String> map1 = ImmutableMap .<String, String>of('1', '2');

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线观看精品| 国产精品多人| xxxxx性欧美特大| 91亚洲国产成人久久精品| 免费一级欧美片在线观看网站| 91麻豆精品| 日韩一区二区三区四区五区| 视频一区二区三区入口| 欧美专区18| 在线精品福利| 国产调教一区二区三区| 久久不卡日韩美女| 国产福利亚洲| 日韩理论片av| 欧美日韩激情在线一区二区三区| 99在线|亚洲一区二区| 国产一区二区精品| 亚洲精品韩国| 国产欧美三级| 国产在视频一区二区三区吞精| 精品免费在线| 久久精品国产99久久| 日韩精品91| 婷婷亚洲五月色综合| 日韩精品一级二级| 日本一区中文字幕| 国产乱子精品一区二区在线观看| 国产精品久久久久久久久久齐齐| 粉嫩av一区二区三区四区五区| 国产在线观看www| 亚洲作爱视频| 国产精品videossex久久发布| 日韩电影免费网址| 久久av一区| 免费日韩一区二区三区| 在线一区视频观看| 久久国产精品久久w女人spa| 中文字幕亚洲影视| 国产精品亚洲综合在线观看| 日韩精品中文字幕第1页| 99在线观看免费视频精品观看| 日韩国产欧美在线播放| 日韩成人免费| 水野朝阳av一区二区三区| 日韩不卡在线观看日韩不卡视频| 卡一卡二国产精品| 国产国产精品| 亚洲毛片网站| 高清av一区| 免费高清在线一区| 精品国产乱码久久久| 九九在线精品| 日本成人在线网站| 91一区二区| 亚洲天堂免费| 国产一二在线播放| 日本中文字幕一区二区视频| 日韩av有码| 亚洲精品系列| 日韩欧美午夜| 欧美亚洲三级| 99精品小视频| 国产精品一区二区三区美女 | 视频一区日韩| 国产一区二区三区91| 免费日韩一区二区| 韩国女主播一区二区三区| 国产精品日本欧美一区二区三区| 美女国产精品久久久| 久久福利影视| 福利片在线一区二区| 一区二区国产精品| 色偷偷偷在线视频播放| 日本免费新一区视频| 欧美中文字幕一区二区| 日韩美女国产精品| 九九综合九九| 91中文字幕精品永久在线| 日韩中文字幕一区二区高清99| 日韩影院二区| 国产精品美女在线观看直播| 首页国产欧美日韩丝袜| 欧美男人天堂| 国产精品传媒麻豆hd| 亚洲精品观看| 黄色亚洲免费| 精品捆绑调教一区二区三区| 国产一卡不卡| 热久久免费视频| 99久久精品国产亚洲精品| 国产午夜精品一区在线观看| 久久亚洲视频| 欧美a级片一区| 国产精品99久久精品| 欧美在线看片| 亚洲狼人精品一区二区三区| 国产99久久久国产精品成人免费| 久久影院一区二区三区| 91在线成人| 免费在线观看一区二区三区| 欧美日韩一二三四| 91欧美在线| 久久福利在线| 国产欧美在线观看免费| 在线精品一区| 99精品美女| 黄色aa久久| 国产一区二区三区四区五区传媒| 亚洲另类黄色| 视频在线在亚洲| 免费日韩视频| 久久成人亚洲| 欧美精品一二| 蜜臀av免费一区二区三区| 亚洲不卡av不卡一区二区| 中文字幕在线看片| 国产精品啊v在线| 国产精品夜夜夜| 国产美女视频一区二区| 青草国产精品| 日韩国产高清在线| 国产麻豆一区二区三区精品视频| 亚洲精品精选| 日韩欧美三区| 国产欧美日韩在线一区二区| 婷婷综合一区| 日韩中文字幕麻豆| 久久av一区二区三区| 国产亚洲精品自拍| 最新亚洲一区| 99成人在线| 99re国产精品| 亚洲精品四区| 97久久亚洲| 国产精品a久久久久| 久久不见久久见中文字幕免费 | 国产一区日韩一区| 亚洲韩日在线| 欧美日韩精品免费观看视频完整| 国产视频一区欧美| 亚洲一区观看| 六月婷婷一区| 亚洲综合图色| 日本一区二区三区视频在线看| 亚洲乱码一区| 国产精品3区| www.51av欧美视频| 国产成人精品亚洲线观看| 国产伦久视频在线观看| 91看片一区| 亚洲v在线看| 免播放器亚洲| 国产日韩在线观看视频| 麻豆久久一区二区| 天堂√中文最新版在线| 韩日一区二区三区| 伊人国产精品| 国产精品115| 久久亚洲精品中文字幕蜜潮电影| 亚洲午夜视频| 伊人www22综合色| 国产美女撒尿一区二区| 国产精品视频一区二区三区综合 | 蜜桃国内精品久久久久软件9| 久久精品官网| 99免费精品| 亚洲在线一区| 亚洲精品九九| 国产精品亚洲一区二区在线观看| 久久精品伊人| 久久久精品五月天| 中文字幕日韩亚洲| 韩国女主播一区二区三区| 国产精品久久久久久久久免费高清| 超碰在线99| 亚洲一本视频| 日韩综合小视频| 国产一区二区久久久久| 美女尤物久久精品| 久久精品国产在热久久| 性欧美69xoxoxoxo| 久久99偷拍| 在线视频精品| 精品亚洲免a| 亚洲一区二区三区高清| 欧美激情综合| 男人天堂欧美日韩| 91麻豆国产自产在线观看亚洲| 免费视频一区三区| 国产毛片久久久| 亚洲欧美成人综合| 国产精品久久久久久久久久10秀| 爽好多水快深点欧美视频| 精品国产一区二| 蜜桃视频在线观看一区二区| 黄色aa久久| 国产欧美三级| 视频在线观看一区| 久久精品中文| 久久精品二区亚洲w码|