Set set=new HashSet();的意义是什么呢
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();的意义是什么呢相关推荐
- 高斯日记、猜年龄、世纪末的星期、排他平方数、马虎的算式、振兴中华、组素数、第39级台阶
高斯日记 题目 大数学家高斯有个好习惯:无论如何都要记日记. 他的日记有个与众不同的地方,他从不注明年月日,而是用一个整数代替,比如:4210 后来人们知道,那个整数就是日期,它表示那一天是高斯出生后 ...
- LeetCode刷题记录13——705. Design HashSet(easy)
LeetCode刷题记录13--705. Design HashSet(easy) 目录 LeetCode刷题记录13--705. Design HashSet(easy) 前言 题目 语言 思路 源 ...
- 一次 HashSet 所引起的并发问题
作者:crossoverJie,GitHub 热门开源作者 来自:https://crossoverjie.top 背景 上午刚到公司,准备开始一天的摸鱼之旅时突然收到了一封监控中心的邮件. 心中暗道 ...
- HashMap、HashTable、ConcurrentHashMap、HashSet区别 线程安全类
HashMap专题:HashMap的实现原理--链表散列 HashTable专题:Hashtable数据存储结构-遍历规则,Hash类型的复杂度为啥都是O(1)-源码分析 Hash,Tree数据结构时 ...
- 【Java源码分析】LinkedHashSet和HashSet源码分析
类的定义 public class HashSet<E> extends AbstractSet<E> implements Set<E>, Cloneable, ...
- 【Java集合系列四】HashSet和LinkedHashSet解析
2017-07-29 16:58:13 一.简介 1.Set概念 Set可以理解为集合,非常类似数据概念中的集合,集合三大特征:1.确定性:2.互异性:3.无序性,因此Set实现类也有类似的特征. 2 ...
- HashSet源码分析 jdk1.6
Set的特点:Set元素无顺序,且元素不可以重复. 1.定义 public class HashSet<E> extends AbstractSet<E> implements ...
- HashMap HashTable HashSet区别剖析
HashMap.HashSet.HashTable之间的区别是Java程序员的一个常见面试题目,在此仅以此博客记录,并深入源代码进行分析: 在分析之前,先将其区别列于下面 1:HashSet底层采用的 ...
- Java 容器之Hashset 详解.
? 在之前的博文中本屌已经介绍过java的Collection接口. 作为实现了Collection接口的容器中, List容器无疑是最常用的, 无论是Arraylist, Linklist, Vec ...
最新文章
- Sqli-labs less 25a
- 著名加密库收集 Encrypt
- addActionListener(this)
- sap内表 table_LINE
- 16位汇编 使用word ptr和byte ptr的寻址方式
- MySql 随机读取多行数据并显示
- 电大管理英语4计算机期末考试,国开电大管理英语1单元自测4答案
- TypeScript 让你不会想用回 JavaScript
- 让你的Hybrid App听懂你的话(Android篇)
- 文件(视频)上传到阿里云 java实现
- 【深度学习】全面理解VGG16模型
- 巴法络的ts系列服务器,BUFFALO TS5400D NAS 巴法络 4BAY 网络存储服务器 塔式 企业级...
- matlab 阿伦方差,GitHub - XinLiGH/GyroAllan: 陀螺仪随机误差的 Allan 方差分析
- getc()、gets()、getchar()、scanf()的区别
- c_predicted_api调用模型,初始化创建mxnet预测器不成功,句柄始终等于0
- 使用ping检测MTU值
- 曾国藩:利可共而不可独,谋可寡而不可众
- 网络与通信:网络协议(概念)
- js文件中引入js的方法
- 2022-2027年中国小麦市场竞争态势及行业投资前景预测报告
热门文章
- Ubuntu20.04+ROSnoetic运行A-LOAM并保存TUM格式轨迹
- IHT发布全球首个房产ATO项目,加速进入酒店和旅游房产市场
- Linux进程间通信详解(三) —— 消息队列及函数
- python小工具开发_使用Python制作一个桌面小工具
- 流水的高考题,铁打的小滑块
- 黑苹果 无法启动解决方案
- 【题目】27个小运动员在参加完比赛后,口渴难耐,去小店买饮料,饮料店搞促销,凭三个空瓶可以再换一瓶,他们最少买多少瓶饮料才能保证一人一瓶?
- CSS3艺术:网页设计案例实战之angular实现 一、数据准备
- JZOJ-senior-5953. 【NOIP2018模拟11.5A组】生死之境
- 国外的一个网站后台UI设计网站