Set set=new HashSet();的意义是什么呢

HashSet hs=new HashSet()  这样写也没什么啊

原因如下:

Set是一个接口,而HashSet是一个类。 HashSet继承并实现了Set。Set set  = new HashSet();这句创建了一个HashSet的对象后把上溯到了Set。此时它是一个Set引用了,有些HashSet有但是Set没有的属性和方法,它就不能再用了。而HashSet hs=new HashSet();创建一对象则保留了HashSet的所有属性。Set有多个实现类,如LinkedSet等,现在使用的是HashSet,也许哪一天需要换成其它的实现类呢?你这个方法的返回类型就不需要改了,并且调用这个方法的所有类都不需要修改,这样就降低了修改程序的成本和风险,提高了程序的可复用性。

假设开始用 HashSet set= new HashSet(), 修改的地方就多了,特别是如果使用了HashSet特有的方法和属性。如果没有特别需求的话,最好使用Set set= new HashSet(); 便于程序代码的重构. 这就是面向接口编程的好处。如果是写共通类共通方法的话,建议少用特性,多用面向接口。

Set set=new HashSet();的意义是什么呢相关推荐

  1. 高斯日记、猜年龄、世纪末的星期、排他平方数、马虎的算式、振兴中华、组素数、第39级台阶

    高斯日记 题目 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后 ...

  2. LeetCode刷题记录13——705. Design HashSet(easy)

    LeetCode刷题记录13--705. Design HashSet(easy) 目录 LeetCode刷题记录13--705. Design HashSet(easy) 前言 题目 语言 思路 源 ...

  3. 一次 HashSet 所引起的并发问题

    作者:crossoverJie,GitHub 热门开源作者 来自:https://crossoverjie.top 背景 上午刚到公司,准备开始一天的摸鱼之旅时突然收到了一封监控中心的邮件. 心中暗道 ...

  4. HashMap、HashTable、ConcurrentHashMap、HashSet区别 线程安全类

    HashMap专题:HashMap的实现原理--链表散列 HashTable专题:Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析 Hash,Tree数据结构时 ...

  5. 【Java源码分析】LinkedHashSet和HashSet源码分析

    类的定义 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, ...

  6. 【Java集合系列四】HashSet和LinkedHashSet解析

    2017-07-29 16:58:13 一.简介 1.Set概念 Set可以理解为集合,非常类似数据概念中的集合,集合三大特征:1.确定性:2.互异性:3.无序性,因此Set实现类也有类似的特征. 2 ...

  7. HashSet源码分析 jdk1.6

    Set的特点:Set元素无顺序,且元素不可以重复. 1.定义 public class HashSet<E> extends AbstractSet<E> implements ...

  8. HashMap HashTable HashSet区别剖析

    HashMap.HashSet.HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析: 在分析之前,先将其区别列于下面 1:HashSet底层采用的 ...

  9. Java 容器之Hashset 详解.

    ? 在之前的博文中本屌已经介绍过java的Collection接口. 作为实现了Collection接口的容器中, List容器无疑是最常用的, 无论是Arraylist, Linklist, Vec ...

最新文章

  1. Sqli-labs less 25a
  2. 著名加密库收集 Encrypt
  3. addActionListener(this)
  4. sap内表 table_LINE
  5. 16位汇编 使用word ptr和byte ptr的寻址方式
  6. MySql 随机读取多行数据并显示
  7. 电大管理英语4计算机期末考试,国开电大管理英语1单元自测4答案
  8. TypeScript 让你不会想用回 JavaScript
  9. 让你的Hybrid App听懂你的话(Android篇)
  10. 文件(视频)上传到阿里云 java实现
  11. 【深度学习】全面理解VGG16模型
  12. 巴法络的ts系列服务器,BUFFALO TS5400D NAS 巴法络 4BAY 网络存储服务器 塔式 企业级...
  13. matlab 阿伦方差,GitHub - XinLiGH/GyroAllan: 陀螺仪随机误差的 Allan 方差分析
  14. getc()、gets()、getchar()、scanf()的区别
  15. c_predicted_api调用模型,初始化创建mxnet预测器不成功,句柄始终等于0
  16. 使用ping检测MTU值
  17. 曾国藩:利可共而不可独,谋可寡而不可众
  18. 网络与通信:网络协议(概念)
  19. js文件中引入js的方法
  20. 2022-2027年中国小麦市场竞争态势及行业投资前景预测报告

热门文章

  1. Ubuntu20.04+ROSnoetic运行A-LOAM并保存TUM格式轨迹
  2. IHT发布全球首个房产ATO项目,加速进入酒店和旅游房产市场
  3. Linux进程间通信详解(三) —— 消息队列及函数
  4. python小工具开发_使用Python制作一个桌面小工具
  5. 流水的高考题,铁打的小滑块
  6. 黑苹果 无法启动解决方案
  7. 【题目】27个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶?
  8. CSS3艺术:网页设计案例实战之angular实现 一、数据准备
  9. JZOJ-senior-5953. 【NOIP2018模拟11.5A组】生死之境
  10. 国外的一个网站后台UI设计网站