java - 有什么不同

标签 java collections

大家!

刚开始学习Java,一时看不懂,例如:

Set<Integer> intset = new HashSet<Integer>();  (1)

HashSet<Integer> intset2 = new HashSet<Integer>(); (2)

这些例子有什么区别?或者它们是相同的? (1) 示例看起来像向上转换,因此这意味着我们有 HashSet仅使用 Set(interface) 方法?谢谢您的回复!

最佳答案

当你写

Set intset = new HashSet();

您保证以下代码(如果不进行转换)不会使用 HashSet 类的任何特殊性。这意味着 future 的实现可能会用 Set 的任何其他实现替换 HashSet,或者可能从其他地方接收它。这实际上是一种最佳实践,因为它意味着您的代码更少 coupled .

关于java - 有什么不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25844599/

相关文章:

java - "Copy"嵌套数组列表

Java:为什么 subList(0, 5).clear() 对我的对象不起作用?

java - Memcached 依赖项 jar 不适用于 maven 项目并抛出 java.lang.ClassNotFound : net. spie.memcached.MemcachedClient 异常

Java Collections Framework 的排序算法

java - 如何通过 AJAX 在 Spring MVC 中呈现平铺 View ?

java - commandButton actionListener 调用 selectOneMenu 监听器

java - 如何在运行时实例化给定数组类型的 Java 数组?

java - 如何在Java中使用键名及其值存储数据?

java - 如何用更快的东西替换 SortedSet 或加速它

java - 重构这种可能导致大输入 Sonar 堆栈溢出的重复