Set<String> set = new HashSet<>();
为什么经常看见这么new对象,有什么优点?
跟
HashSet<String> set = new HashSet<>();
这种方式比较呢?
Set<String> set = new HashSet<>();
为什么经常看见这么new对象,有什么优点?
跟
HashSet<String> set = new HashSet<>();
这种方式比较呢?
15 回答8.4k 阅读
8 回答6.2k 阅读
1 回答4k 阅读✓ 已解决
3 回答6k 阅读
3 回答2.2k 阅读✓ 已解决
2 回答3.1k 阅读
2 回答3.8k 阅读
个人感觉是关注点的问题
对于
Set<String> set = new HashSet<>()
这种,实际上Set是一个接口,对于接口来说是不关注这个对象到底是什么,无论是HashSet,TreeSet还是其他的。是面向接口编程思想的体现。好处是,如果有一天你发现这个位置用HashSet不合适,需要修改为带有排序功能的TreeSet,或者说需要改为线程安全的CopyOnWriteHashSet,只需要修改创建的方式就可以,不需要修改其他位置的代码了。