通过Builder来构建集合list和map

之前已经写过一篇通用Builder来构建实例对象的(基于Java8的新特性写一个通用的Builder工具类_java手动写一个builder-CSDN博客)但是这个builder不能构建集合,也就是list和map,今天突然心血来潮,想写写集合类的builder,这两个builder相比于通用的builder要简单易懂的多,废话不多说,直接上代码:

Mapbuilder:

复制代码
public class MapBuilder<K, V> {
    private Map<K, V> map;

    private MapBuilder(Map<K, V> map) {
        this.map = map;
    }

    public static <K, V> MapBuilder<K, V> ofMap() {
        return new MapBuilder<>(new HashMap<K, V>());
    }

    public MapBuilder<K, V> put(K key, V value) {
        this.map.put(key, value);
        return this;
    }

    public Map<K, V> build() {
        return this.map;
    }

    public static void main(String[] args) {
        Map<String, Integer> map = MapBuilder.<String, Integer>ofMap()
                .put("a", 1)
                .put("b", 2)
                .put("c", 3)
                .build();

        System.out.println(map); // 输出:{a=1, b=2, c=3}
    }
}

ListBuilder:

复制代码
public class ListBuilder<T> {
    private List<T> list;

    private ListBuilder(List<T> list) {
        this.list = list;
    }

    public static <T> ListBuilder<T> ofList() {
        return new ListBuilder(new ArrayList<T>());
    }

    public ListBuilder<T> add(T t) {
        this.list.add(t);
        return this;
    }

    public List<T> build() {
        return this.list;
    }

    public static void main(String[] args) {
        List<Integer> integers = ListBuilder.<Integer>ofList().add(1).build();
        System.err.println(integers);
    }
}
相关推荐
鱼子星_18 小时前
【C++】深入剖析list:list及其双向迭代器实现
开发语言·数据结构·c++·笔记·stl·list
啊啊啊啊啊!!!!2 天前
【c++】手撕STL List:从接口使用到底层双向链表的实现
c++·链表·list
程序喵大人5 天前
【C++进阶】STL容器与迭代器 - 04 list 和 forward_list 用节点换稳定位置
开发语言·c++·list
2301_7681034910 天前
HarmonyOS趣味相机实战第31篇:图片文档List、详情弹层与删除状态闭环
list·harmonyos·arkts·状态管理·arkui
绝世番茄11 天前
HarmonyOS List 上拉加载更多(LoadMore)深度实战指南
华为·list·harmonyos·鸿蒙
绝世番茄11 天前
鸿蒙原生 ArkTS 布局之 List 的单选与多选模式实战指南
华为·list·harmonyos·鸿蒙
星恒随风11 天前
C++ STL 详解:list 的使用、迭代器失效、模拟实现与 vector 对比
开发语言·数据结构·c++·笔记·学习·list
华玥作者12 天前
uniapp 万条数据不卡顿:我写了个虚拟列表组件 hy-list,原生支持瀑布流
数据结构·uni-app·list·vue3
壹号用户12 天前
c++入门之list了解及使用
数据结构·list
大模型码小白12 天前
JAVA 集合框架进阶:List 与 Set 的深度解析与实战
java·开发语言·人工智能·windows·语言模型·list·ai编程