请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

是否应该将类似HashMap集合做出不可变

HashMap集合是线程不安全的,不可变对象在多线程是安全的。

用了Immutable之后,HashMap就变成安全的。

是否说明只要是hashmap做成不可变就是对的,或者说场景下会考虑用不可变。


正在回答

1回答

Jimin 2018-09-06 17:22:09

你好,如果一个hashmap被多个线程共享且不会修改,是特别建议设计成不可变的。有时作为参数传给别人,但是又不希望被修改时,也可以考虑设计成不可变对象。

设计成不可变主要是防止多个线程修改却没同步措施导致线程不安全,因此单线程使用时不需要刻意去做成不可变(比如局部变量),同时对于需要不断变化的,这时设置成不可变明显不太合适,这时使用线程安全的hashmap更好些(课程里后面会介绍的concurrentHashMap,或者加上同步处理)

1 回复 有任何疑惑可以回复我~
  • 提问者 car #1
    多谢老师的指点。
    回复 有任何疑惑可以回复我~ 2018-09-06 17:24:12
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信