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

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.dtcms.com/a/201808.html

相关文章:

  • 基于C#的Modbus通信协议全面解析与实现指南
  • CSS 背景全解析:从基础属性到视觉魔法
  • Qt文件:XML文件
  • 使用 adb 命令截取 Android 设备的屏幕截图
  • CI/CD的演进之路
  • SpringBoot-4-Spring Boot项目配置文件和日志配置
  • RabbitMQ ⑤-顺序性保障 || 消息积压 || 幂等性
  • PyCharm2025的字体的设置
  • 【常用算法:进阶篇】13.位运算全解析:从底层原理到高效算法
  • 易路 AI 招聘:RPA+AI 颠覆传统插件模式,全流程自动化实现效率跃迁
  • 音视频之H.265/HEVC速率控制
  • 图的几种存储方法比较:二维矩阵、邻接表与链式前向星
  • 利用Spring Boot和Redis构建高性能缓存系统
  • 使用MybatisPlus实现sql日志打印优化
  • 洛谷P1093 [NOIP 2007 普及组] 奖学金
  • 丝杆升降机在锂电行业的自动化应用有什么?
  • MySQL 存储过程优化实践:项目合同阶段数据自动化处理
  • 基于 ABP vNext + CQRS + MediatR 构建高可用与高性能微服务系统:从架构设计到落地实战
  • 源码分析之Leaflet中TileLayer
  • Linux Bash 中 $? 的详细用法
  • 每日算法 -【Swift 算法】寻找两个有序数组的中位数(O(log(m+n)))详细讲解版
  • 深挖navigator.webdriver浏览器自动化检测的底层分析
  • k8s1.27版本集群部署minio分布式
  • jQuery Ajax中dataType 和 content-type 参数的作用详解
  • MySQL 8.0 OCP 英文题库解析(六)
  • Java中字符串(String类)的常用方法
  • 海康威视摄像头C#开发指南:从SDK对接到安全增强与高并发优化
  • win7无线网络名称显示为编码,连接对应网络不方便【解决办法】
  • 基于springboot的校园二手电动车 交易可视化系统【附源码】
  • 【Jitsi Meet】(腾讯会议的平替)Docker安装Jitsi Meet指南-使用内网IP访问