Pur*_*ret 1 java generics collections constructor initialization
可能重复:
List与ArrayList变量类型?
我HashSet
在我的程序中正如我所说:
Set<String> namesFilter = new HashSet<String>();
如果我这样开始,这在功能上有什么不同吗?
HashSet<String> namesFilter = new HashSet<String>();
我已经读过关于集合界面的这个,我理解接口(好吧,除了它们在这里使用).我已经从Effective Java中读到了这段摘录,我已经阅读了这个问题,但我觉得没有比这更聪明了.
Java中是否有最佳实践,如果是,为什么?我的直觉是,Set
在我的第一个例子中,它使铸造变得更容易.但话说回来,你只会投射到一个集合的东西,你可以通过重新构建它来转换它.
我认为在混凝土类型上使用界面是更好的做法,即
Set<String> strings = new HashSet<String>();
Run Code Online (Sandbox Code Playgroud)
通过这样做,您承诺仅使用Set
接口提供的功能.如果您决定需要不同的性能特征(例如,如果您想使用其他TreeSet
代码)而不必担心破坏代码,则可以更轻松地在以后更换您正在使用的集合类型.
归档时间: |
|
查看次数: |
2469 次 |
最近记录: |