当前位置: 首页 > news >正文

做网站杭州陕西省档案馆建设网站

做网站杭州,陕西省档案馆建设网站,西安小程序开发的公司,郴州网站维护Set接口 说一下 HashSet 的实现原理? HashSet 是基于 HashMap 实现的,HashSet的值存放于HashMap的key上,HashMap的value统一为PRESENT,因此 HashSet 的实现比较简单,相关 HashSet 的操作,基本上都是直接调…

Set接口

说一下 HashSet 的实现原理?

HashSet 是基于 HashMap 实现的,HashSet的值存放于HashMap的key上,HashMap的value统一为PRESENT,因此 HashSet 的实现比较简单,相关 HashSet 的操作,基本上都是直接调用底层 HashMap 的相关方法来完成,HashSet 不允许重复的值。

HashSet如何检查重复?HashSet是如何保证数据不可重复的?

向HashSet 中add ()元素时,判断元素是否存在的依据,不仅要比较hash值,同时还要结合equles 方法比较。

HashSet 中的add ()方法会使用HashMap 的put()方法。

HashMap 的 key 是唯一的,由源码可以看出 HashSet 添加进去的值就是作为HashMap 的key,并且在HashMap中如果K/V相同时,会用新的V覆盖掉旧的V,然后返回旧的V。所以不会重复( HashMap 比较key是否相等是先比较hashcode 再比较equals )。

以下是HashSet 部分源码:

private static final Object PRESENT = new Object();
private transient HashMap<E,Object> map;public HashSet() {map = new HashMap<>();
}public boolean add(E e) {// 调用HashMap的put方法,PRESENT是一个至始至终都相同的虚值return map.put(e, PRESENT)==null;
}

hashCode()与equals()的相关规定

  1. 如果两个对象相等,则hashcode一定也是相同的
  2. 两个对象相等,对两个equals方法返回true
  3. 两个对象有相同的hashcode值,它们也不一定是相等的
  4. 综上,equals方法被覆盖过,则hashCode方法也必须被覆盖
  5. hashCode()的默认行为是对堆上的对象产生独特值。如果没有重写hashCode(),则该class的两个对象无论如何都不会相等(即使这两个对象指向相同的数据)。

==与equals的区别

  1. ==是判断两个变量或实例是不是指向同一个内存空间 equals是判断两个变量或实例所指向的内存空间的值是不是相同
  2. ==是指对内存地址进行比较 equals()是对字符串的内容进行比较
  3. ==指引用是否相同 equals()指的是值是否相同

HashSet与HashMap的区别

Queue

BlockingQueue是什么?

Java.util.concurrent.BlockingQueue是一个队列,在进行检索或移除一个元素的时候,它会等待队列变为非空;当在添加一个元素时,它会等待队列中的可用空间。BlockingQueue接口是Java集合框架的一部分,主要用于实现生产者-消费者模式。我们不需要担心等待生产者有可用的空间,或消费者有可用的对象,因为它都在BlockingQueue的实现类中被处理了。Java提供了集中BlockingQueue的实现,比如ArrayBlockingQueue、LinkedBlockingQueue、PriorityBlockingQueue,、SynchronousQueue等。

在 Queue 中 poll()和 remove()有什么区别?

  • 相同点:都是返回第一个元素,并在队列中删除返回的对象。
  • 不同点:如果没有元素 poll()会返回 null,而 remove()会直接抛出 NoSuchElementException 异常。

代码示例:

Queue<String> queue = new LinkedList<String>();
queue. offer("string"); // add
System. out. println(queue. poll());
System. out. println(queue. remove());
System. out. println(queue. size());

http://www.yayakq.cn/news/808751/

相关文章:

  • 网站开发用什么后端框架做ppt做好的网站
  • 网站模板 首饰预定深圳做网站优化报价
  • 怎么在一起做网站上拿货互联网服务商
  • 网页制作的公司网站乐清做网站的公司
  • 中山做网站联系电话网络推广培训哪个好
  • 网站在开发过程中如何做SEO个人 导航网站 备案
  • 网站开发量python语言是什么
  • 北京网站建设 案例电商平台是什么意思
  • 泉州网站制作套餐flash网站源码下载
  • 嘉兴市南湖区城乡规划建设局网站有服务器域名源码怎么做网站平台
  • 企业免费自助建站平台wordpress改了常规无法访问
  • 郑州网站设计培训中国版动漫网站模板
  • h5网站建设需要哪些资料wordpress投资主题公园
  • 大德通众包做网站怎么样办一家建筑公司需要哪些岗位
  • 上海帝程网站建设公司wordpress 加盟主题
  • 腾冲住房和城乡建设局网站涿州吧
  • 网站建设工作策划方案做网站和做app的区别
  • 网站设计的创新点移动端网页
  • 动漫网站建设方案策划书网站建设质量如何衡量
  • 对其网站建设进行了考察调研班级网站模板html
  • 培训网站免费wordpress建站 ftp
  • 优化网站内链网站后台管理系统使用方法
  • 网站空间文件删不掉西安哪家网站做的好
  • 建网站需成本多少钱wordpress设置ssl证书
  • 用php做电商网站有哪些wordpress wptouch
  • 百度站长资源管理遂宁网页设计公司
  • 企业门户网站系统成都生活家装饰公司总部电话
  • 网站建设单选怎么做电玩网站
  • 公司网站域名注册流程专业app制作的公司
  • 网站做好了怎样推广专业做网站多少钱