当前位置: 首页 > java >正文

List更简洁的编码构建

List的链式构建需求

    jdk1.8,编码时需要手动构建一个List

  • 传统List构建方式

       - 声明列表,依次添加元素;

       - 利用Arrays.asList方法声明并添加元素

//1 先声明创建
List<String> createList = new ArrayList<>();//2 逐个添加元素
createList.add("1");
createList.add("2");
createList.add("3");//-------------------------------------------------//利用Arrays.asList
List<String> createList = new ArrayList<String>(Arrays.asList("1", "2", "3"));

  • 链式构建

        -调用Builder链式调用add方法添加元素

List<String> buildList = ListBuilder.<String>builder().add("1").add("2").add("3").build();

实现List的链式构建

  • 定义ListBuilder工具类
  • 实现链式方法:add等
  • 返回最终构建的List对象
public class ListBuilder<T> {private final ArrayList<T> arrayList;private ListBuilder() {arrayList= new ArrayList<>();}public static <T> ListBuilder<T> builder() {return new ListBuilder<>();}public ListBuilder<T> add(T t) {arrayList.add(t);return this;}public ArrayList<T> build() {return arrayList;}
}

总结

  • List链式构建的适用场景在于需要隐藏细节,分步链式创建减少重复代码
  • 最终获取到的列表是可变列表,需要不可增删列表直接使用Arrays.asList更高效安全
  • 直接使用new ArrayList(Arrays.asList("元素1","元素2","元素3"))更简洁
    //封成一个静态方法@SafeVarargspublic static<T> List<T> createList(T... t) {return new ArrayList<>(Arrays.asList(t));}//直接调用List<Integer> list = createList(1, 2, 3);
http://www.xdnf.cn/news/7458.html

相关文章:

  • 【华为鸿蒙电脑】首款鸿蒙电脑发布:MateBook Fold 非凡大师 MateBook Pro,擎云星河计划启动
  • 易趋赋能智能家电:从需求到交付的全链路降本增效
  • 【Jitsi Meet】(腾讯会议的平替)Docker安装Jitsi Meet指南-使用内网IP访问
  • 聚焦开放智能,抢占技术高地 | 2025 高通边缘智能创新应用大赛第五场公开课来袭!
  • ⼆叉搜索树详解
  • 《MambaLLIE:基于隐式Retinex感知的低光照增强框架与全局-局部状态空间建模》学习笔记
  • 测试--自动化测试函数
  • C++类与对象--4 友元
  • 【C++】日期类
  • sherpa-ncnn:音频处理跟不上采集速度 -- 语音转文本大模型
  • Logrotate:配置日志轮转、高效管理Linux日志文件
  • 开发体育比分网站,有哪些坑需要注意的
  • 手搓一个Transformer
  • 以用户为中心的产品才是好产品
  • Kali安装配置JAVA环境和切换JDK版本的最详细的过程
  • BGP综合实验(2)
  • ai agent(智能体)开发 python高级应用7: crawl4ai 0.6.3 加re正则表达式 获取百度中含有 韩立的图片要求横屏图片
  • ts导入vue文件时提示找不到模块或其相应的类型声明问题解决
  • ADVANTEST Q8326光学波长计操作手Operation Manual
  • 升级mysql (rpm安装)
  • MIMO 检测(6)--最大似然检测(1)
  • js逆向反调试的基本 bypass
  • 【C语言】大程序结构
  • Linux详解基本指令(一)
  • 对盒模型的理解
  • 澳大利亚TikTok网络专线+本地化策略:澳洲电商品牌的破局之道
  • 最大子树和--树形dp
  • day30python打卡
  • Rust 学习笔记:关于错误处理的练习题
  • 1-3V升3.2V升压驱动WT7013