首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

在构造函数中初始化arrayList或map是不是很好的做法?

在构造函数中初始化arrayList或map是一种常见的做法,但是否适合取决于具体的情况和需求。

对于arrayList,如果在构造函数中初始化,可以确保对象创建时就具有一个初始的空列表,方便后续的操作和使用。这样做的优势是可以避免在使用arrayList之前进行空指针检查,减少了代码的复杂性。适用场景包括需要立即开始使用列表的情况,或者在对象的整个生命周期内都需要使用列表。

示例代码:

代码语言:txt
复制
public class MyClass {
    private List<String> myList;

    public MyClass() {
        myList = new ArrayList<>();
    }

    // 其他方法使用myList
}

对于map,同样可以在构造函数中初始化,以确保对象创建时就具有一个初始的空映射。这样做的优势是可以避免在使用map之前进行空指针检查,简化了代码逻辑。适用场景包括需要立即开始使用映射的情况,或者在对象的整个生命周期内都需要使用映射。

示例代码:

代码语言:txt
复制
public class MyClass {
    private Map<String, Integer> myMap;

    public MyClass() {
        myMap = new HashMap<>();
    }

    // 其他方法使用myMap
}

需要注意的是,在构造函数中初始化arrayList或map时,应该根据具体需求选择合适的实现类,如ArrayList、LinkedList、HashMap、TreeMap等。此外,如果构造函数中的初始化操作比较耗时或复杂,可能会影响对象的创建性能,需要根据实际情况进行权衡和优化。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云数据库 MySQL 版:https://cloud.tencent.com/product/cdb_mysql
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发(移动推送、移动分析、移动测试等):https://cloud.tencent.com/product/mobile
  • 腾讯云区块链(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(Tencent Cloud Metaverse):https://cloud.tencent.com/solution/metaverse
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

教你10条下饭操作!

() 才是更高效做法,其比先迭代keySet() 后再去通过get 取值性能更佳。...尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...Java 集合类库,Listcontains 方法普遍时间复杂度为O(n),若代码需要频繁调用contains 方法查找数据则先将集合list 转换成HashSet 实现,将O(n) 时间复杂度将为...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数

56630

这样规范写代码,同事直呼“666”

尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

60210
  • 这样规范写代码,同事直呼“666”

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    49100

    这样规范写代码,同事直呼“666”

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...) 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    37120

    这样规范写代码,同事直呼“666”

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...) 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    49320

    这样规范写代码,同事直呼“666”

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...) 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    43620

    编码5分钟,优化两小时?14 条 yyds 编码规范

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();..."); list.add("Charming"); list.add("Perfectionist"); } 七、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合...,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数。...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    57430

    规范 | 16条 yyds 代码规范

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    30500

    当我遵循了这 16 条规范写代码,同事只对我说了三个字: 666

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    52730

    16 条 yyds 代码规范

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    43120

    老板看了我代码,直呼“666”,要涨工资?

    () 才是更高效做法,其比先迭代keySet() 后再去通过get 取值性能更佳。...尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例:int[] arr = new int[]{1,2,3,4};List list = new ArrayList();for...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    43050

    16 条 yyds 代码规范

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    40430

    16 条 yyds 代码规范

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    47920

    Java代码规范

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    1K20

    如何更规范化编写 Java 代码

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时 O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...、方法参数、私有方法、字段和多余括号 九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化...,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数。...,那么这些枚举常量属性很容易被修改;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应 Setter 方法,最好加上 final 修饰符。

    78140

    老板看了我代码,直呼“666”,说涨工资!

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...("Perfectionist"); } 八、删除未使用局部变量、方法参数、私有方法、字段和多余括号 九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数...,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数。...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    38720

    如何更规范写Java代码

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例:int[] arr = new int[]{1,2,3,4};List list = new ArrayList();for...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    63430

    五年工作经验总结 16 条代码规范

    尽量初始化时指定集合大小,能有效减少集合扩容次数,因为集合每次扩容时间复杂度很可能时O(n),耗费时间和性能。...反例: //初始化list,往list 添加元素反例: int[] arr = new int[]{1,2,3,4}; List list = new ArrayList();...九、工具类屏蔽构造函数 工具类是一堆静态字段和函数集合,其不应该被实例化;但是,Java 为每个没有明确定义构造函数类添加了一个隐式公有构造函数,为了避免不必要实例化,应该显式定义私有构造函数来屏蔽这个隐式公有构造函数...() 效率更高 String strLove = String.valueOf(num); 十二、避免使用BigDecimal(double) BigDecimal(double) 存在精度损失风险,精确计算值比较场景可能会导致业务逻辑异常...;理想情况下,枚举属性字段是私有的,并在私有构造函数赋值,没有对应Setter 方法,最好加上final 修饰符。

    26230

    使用Java 10var类型推断几个注意点!

    类型声明不是向读者传达信息唯一方式。其他方法包括变量名称和初始化表达式。 方法 1.选择提供有用信息变量名称 一般来说,这是一种很好做法,但在var上下文中它更为重要。...var声明,可以使用变量名称来传达有关变量含义和用法信息。用var替换显式类型通常应该伴随着改进变量名。有时,在其名称对变量类型进行编码可能很有用。...3.初始化程序为Reader提供足够信息时,请考虑Var 局部变量通常用构造函数初始化。...如果变量初始化程序将来要更改,这可能会导致其推断类型发生更改,从而导致使用该变量后续代码中发生错误错误。...例如: // DANGEROUS: infers as List var list = List.of(); 使用泛型方法时,可以通过构造函数方法实际参数提供其他类型信息,从而允许推断出预期类型

    1.2K00
    领券