首页 技术 正文
技术 2022年11月15日
0 收藏 696 点赞 4,917 浏览 944 个字

今天在编程中,需要使用到Hashmap来存储和传递数据,发现自己学习Java这么久,实际上对泛型依旧知之甚少,搜索整理了一下HashMap的使用。

HashMap的声明初始化,因为泛型的原因,起两个参数key和value需指定具体的类型,使用put方法可以将数据传送到HashMap中,

 HashMap<String, Integer> data = new HashMap<String, Integer>(); data.put("苹果", 100); data.put("梨子", 200); data.put("葡萄", 300); data.put("香蕉", 400); data.put("荔枝", 500);

HashMap使用我重点关注度是对其的遍历算法,,其遍历算法主要有两种,可以使用KeySet和entrySet来进行遍历,核心代码如下所示:

第一种:使用的是EntrySet

  Map map = new HashMap();

  Iterator iter = map.entrySet().iterator();

  while (iter.hasNext()) {

  Map.Entry entry = (Map.Entry) iter.next();

  Object key = entry.getKey();

  Object val = entry.getValue();

  }

  效率高,以后一定要使用此种方式!

第二种:,使用的是KeySet

  Map map = new HashMap();

  Iterator iter = map.keySet().iterator();

  while (iter.hasNext()) {

  Object key = iter.next();

  Object val = map.get(key);

}

小队来说效率低一些,这种方式它的优点在于可以根据你所想要的key值得到你想要的 values,更具灵活性!!

这两种遍历的方式实际上是有差别的,对于keySet其实是遍历了2次,一次是转为iterator,一次就从hashmap中取出key所对于的value。

而entryset只是遍历了第一次,就是把key和value都放到了entry中,所以就快了。

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,497
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,910
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,744
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,498
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:8,137
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:5,301