阿里巴巴开发手册(list集合操作)

1、不允许程序任何地方使用java.sql.Date、java.sql.Time 、java.sql.Timestamp。
2、判断list元素是否为空,使用isEmpty()方法,而不是size()==0。
3、集合转数组,必须使用集合的toArray(T[] array),传入的是类型完全一致、长度0的空数组
说明:如果直接使用toArray无参方法存在问题,只能返回object[]类,若强制转其他数组类型出现ClassCastException异常

List<String> list = new ArrayList<>(2);
list.add("guan");
list.add("bao");
String[] array = list.toArray(new String[0])

使用 toArray 带参方法,数组空间大小的 length,
1) 等于 0,动态创建与 size 相同的数组,性能最好2)
2)大于 0 但小于 size,重新创建大小等于 size 的数组,增加 GC 负担。
3) 等于 size,在高并发情况下,数组创建完成之后,size 正在变大的情况下,负面影响与 2 相同。
4) 大于 size,空间浪费,且在 size 处插入 null 值,存在 NPE 隐患。
4、集合初始化时,指定集合初始值大小
说明:如果暂时无法确定集合大小,指定默认值(16)即可。
5、变量map使用entrySet而不是keySet。
说明:KeySet其实变量了2次,一次转为Iterator对象,另一次从hashMap中取出key对应的value。
如果jdk8使用Map.forEach()方法
6、Map类集合k/v能不能存储null值,表格


Snipaste_2021-11-26_09-11-12.png
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容