可能重复: 列表还是ArrayList变量类型?
在我的程序中,我正在降低HashSet的质量:
Set<String> namesFilter = new HashSet<String>();
如果我像这样初始化,这在功能上有什么不同吗?
HashSet<String> namesFilter = new HashSet<String>();
我读过关于集合接口的这,我理解接口(除了这里使用它们)。我从有效的Java上读过这个节选,我读过这个问题,但是我觉得一点也不明智。
Java中有最佳实践吗?如果有,为什么?我的直觉是,在我的第一个示例中,它使转换到不同类型的Set更容易。但话又说回来,你只能把它转换成一个集合,你可以通过重新构造它来转换它。
发布于 2012-10-03 09:41:58
我认为更好的做法是在具体类型上使用接口,即
Set<String> strings = new HashSet<String>();通过这样做,您将只使用Set接口提供的功能。这样,如果您决定需要不同的性能特性(例如,如果您想使用TreeSet ),就可以更容易地交换您以后使用的集合,而不必担心代码中断。
https://stackoverflow.com/questions/12705707
复制相似问题