Java Builder模式構(gòu)建MAP/LIST的實(shí)例講解
我們?cè)跇?gòu)建一個(gè)MAP時(shí),要不停的調(diào)用put,有時(shí)候看著覺(jué)得很麻煩,剛好,看了下builder模式,覺(jué)得這思路不錯(cuò),于是乎,照著用builder模式寫了一個(gè)構(gòu)建MAP的示例,
代碼如下:
import java.util.HashMap;
import java.util.Map;
public class MapBuilder<T> {
public Builder<T> b;
public MapBuilder(Builder<T> b){
this.b = b;
}
public Map<String,T> map(){
return b.map;
}
public T get(String key){
return b.map.get(key);
}
public static class Builder<T>{
public Map<String, T> map;
public Builder(){
map = new HashMap<String, T>();
}
public Builder<T> map(String key, T value){
map.put(key, value);
return this;
}
public MapBuilder<T> build(){
return new MapBuilder<T>(this);
}
}
public static void main(String[] args) {
MapBuilder<String> build = new MapBuilder.Builder<String>().map("a", "b").build();
System.out.println(build.get("a"));
}
}
public class ListBuilder<T> {
public Builder<T> b;
public ListBuilder(Builder<T> b){
this.b = b;
}
public List<T> list(){
return b.list;
}
public T get(int index){
return b.list.get(index);
}
public static class Builder<T>{
public List<T> list;
public Builder(){
list = new ArrayList<T>();
}
public Builder<T> add(T value){
list.add(value);
return this;
}
public ListBuilder<T> build(){
return new ListBuilder<T>(this);
}
}
public static void main(String[] args) {
ListBuilder<String> build = new ListBuilder.Builder<String>().add("a").add("b").build();
System.out.println(build.get(0));
}
}
以上這篇Java Builder模式構(gòu)建MAP/LIST的實(shí)例講解就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot項(xiàng)目打成War包部署的方法步驟
這篇文章主要介紹了springboot項(xiàng)目如何打war包流程的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
關(guān)于Unsupported major.minor version 49.0的錯(cuò)誤解決辦法
這篇文章主要介紹了關(guān)于Unsupported major.minor version 49.0的錯(cuò)誤解決辦法的相關(guān)資料,需要的朋友可以參考下2015-11-11
SpringBoot實(shí)現(xiàn)全局異常處理方法總結(jié)
在項(xiàng)目開(kāi)發(fā)中出現(xiàn)異常時(shí)很平常不過(guò)的事情,我們處理異常也有很多種方式。本文將詳細(xì)為大家講解SpringBoot實(shí)現(xiàn)全局異常處理幾種方法,感興趣的可以學(xué)習(xí)一下2022-03-03
Java實(shí)現(xiàn)的連續(xù)奇數(shù)(n+2*x)是合數(shù)的算法題暴力算法
這篇文章主要介紹了Java實(shí)現(xiàn)的連續(xù)奇數(shù)(n+2*x)是合數(shù)的算法題暴力算法,本文包含運(yùn)算結(jié)果和實(shí)現(xiàn)代碼,需要的朋友可以參考下2014-09-09
SpringCloud LoadBalancer自定義負(fù)載均衡器使用解析
LoadBalancerClient 是 SpringCloud 提供的一種負(fù)載均衡客戶端,Ribbon 負(fù)載均衡組件內(nèi)部也是集成了 LoadBalancerClient 來(lái)實(shí)現(xiàn)負(fù)載均衡,本文給大家深入解析 LoadBalancerClient 接口源碼,感興趣的朋友跟隨小編一起看看吧2023-04-04
詳解全局事務(wù)注解@GlobalTransactional的識(shí)別
這篇文章主要為大家介紹了詳解全局事務(wù)注解@GlobalTransactional的識(shí)別源碼解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
SpringBoot集成FTP文件服務(wù)器簡(jiǎn)單應(yīng)用方式
這篇文章主要介紹了SpringBoot集成FTP文件服務(wù)器簡(jiǎn)單應(yīng)用方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07

