前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Java集合学习5:Map-HashMap、Hashtable

Java集合学习5:Map-HashMap、Hashtable

作者头像
程序员洲洲
发布2024-06-07 08:56:14
发布2024-06-07 08:56:14
760
举报
文章被收录于专栏:项目文章项目文章

说白了,Map就是 键值对,存储一对数据 。允许用null作为key或者value。

Map接口使用

  • map的遍历
  • 注意keySet()方法是得到的key的set形式的集合,所以要以set来接着。
  • entrySet(),Entry是映射对,有key也有value。
  • 方法代码:

Set<Map.entry<String,String>> entries = map.entrySet(); for( Entry<String,String> entry : entries) { System.out.println(entry.getKey()+ entry.getValue()); } 注意 entry是内部接口,所以需要map.entry。

效率是第二个高,因为第一个key拿到了还得遍历进行拿value的操作,而第二个直接拿了 全部了键值对一次性把key和value都拿了。

HashMap

基于哈希表 的Map实现。

默认构造初始容量是16,加载因子是0.75.也就是 当超过百分之75,开始扩容,这就是加载因子的意思。

那么students.put(new Student(“沙和尚”,102),“南京”); 是可以加进来的,这下就有两个沙和尚了。 其实是因为对象内存地址不一样就进来了,因为new是在堆空间进行了。

使用key可hashcode和equals作为 重复判断,默认hashcode是以地址来计算的。 如果想一样的话不给加进来,那么就需要重写hashcode和equals方法。

在eclipse 中可以直接使用软件 生成重写的。

这个就是重写的方法。

HashMap源码分析

左移四位。是因为 底层二进制最快 。

因为小于6的时候没必要变成树,因为元素太少了。

Hashtable

不允许null作为key或者是 value。 这个类用的不多 ,但是他的子类,Properties用的比较多。

TreeMap

实现了SortedMap接口 (是 Map的子接口),可以对key自动排序。 数据存储结构也是红黑树。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Map接口使用
  • HashMap
  • HashMap源码分析
  • Hashtable
  • TreeMap
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档