Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
eyckwu
p3c
提交
b5623e6a
P
p3c
项目概览
eyckwu
/
p3c
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
p3c
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
b5623e6a
编写于
2月 19, 2019
作者:
玄
玄坛
提交者:
GitHub
2月 19, 2019
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #452 from sooxin/master
correct method name
上级
e956b122
dcb54fde
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
2 addition
and
3 deletion
+2
-3
p3c-gitbook/编程规约/集合处理.md
p3c-gitbook/编程规约/集合处理.md
+2
-3
未找到文件。
p3c-gitbook/编程规约/集合处理.md
浏览文件 @
b5623e6a
...
...
@@ -68,7 +68,7 @@ List list = Arrays.asList(str);
<br><span
style=
"color:orange"
>
说明
</span>
:HashMap使用HashMap(int initialCapacity) 初始化,
<br><span
style=
"color:green"
>
正例
</span>
:initialCapacity = (需要存储的元素个数 / 负载因子) + 1。注意负载因子(即loader factor)默认为0.75,如果暂时无法确定初始值大小,请设置为16(即默认值)。
<br><span
style=
"color:red"
>
反例
</span>
:HashMap需要放置1024个元素,由于没有设置容量初始大小,随着元素不断增加,容量7次被迫扩大,resize需要重建hash表,严重影响性能。
10.
【推荐】使用entrySet遍历Map类集合KV,而不是keySet方式进行遍历。
<br><span
style=
"color:orange"
>
说明
</span>
:keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.for
e
ach方法。
<br><span
style=
"color:orange"
>
说明
</span>
:keySet其实是遍历了2次,一次是转为Iterator对象,另一次是从hashMap中取出key所对应的value。而entrySet只是遍历了一次就把key和value都放到了entry中,效率更高。如果是JDK8,使用Map.for
E
ach方法。
<br><span
style=
"color:green"
>
正例
</span>
:values()返回的是V值集合,是一个list集合对象;keySet()返回的是K值集合,是一个Set集合对象;entrySet()返回的是K-V值组合集合。
11.
【推荐】高度注意Map类集合K/V能不能存储null值的情况,如下表格:
...
...
@@ -82,4 +82,4 @@ List list = Arrays.asList(str);
<span style="color:red">反例</span>: 由于HashMap的干扰,很多人认为ConcurrentHashMap是可以置入null值,而事实上,存储null值时会抛出NPE异常。
12.
【参考】合理利用好集合的有序性(sort)和稳定性(order),避免集合的无序性(unsort)和不稳定性(unorder)带来的负面影响。
<br><span
style=
"color:orange"
>
说明
</span>
:有序性是指遍历的结果是按某种比较规则依次排列的。稳定性指集合每次遍历的元素次序是一定的。如:ArrayList是order/unsort;HashMap是unorder/unsort;TreeSet是order/sort。
13.
【参考】利用Set元素唯一的特性,可以快速对一个集合进行去重操作,避免使用List的contains方法进行遍历、对比、去重操作。
\ No newline at end of file
13.
【参考】利用Set元素唯一的特性,可以快速对一个集合进行去重操作,避免使用List的contains方法进行遍历、对比、去重操作。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录