我的上篇博文总结了继承了Collection的单列集合, 其中最常用的是ArrayList, HashSet. 在今天, 继续奋斗
, 也把常用的双列集合类(即HashMap)也总结一下! 干劲十足
!
首先, 我用一张图来描述整个集合框架类的继承关系图:
Map接口
HashMap
底层是哈希算法, 针对键
LinkedHashMap
底层是链表, 针对键
TreeMap
底层是二叉树算法, 针对键
注意: 开发中用HashMap比较多!
本文源自: http://blog.csdn.net/menglanyingfei
首先, 我用一张图来描述整个集合框架类的继承关系图:
Map接口
HashMap
底层是哈希算法, 针对键
LinkedHashMap
底层是链表, 针对键
TreeMap
底层是二叉树算法, 针对键
注意: 开发中用HashMap比较多!
代码实现, 下面分别用代码来演示HashMap, LinkedHashMap, TreeMap的用法:
HashMap:
package org.lxy.map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
/**
* @author menglanyingfei
* @date 2017-3-20
*/
public class Demo1_HashMap {
/**
* Map集合的遍历之键找值
* @param args
*/
public static void main(String[] args) {
HashMap<String, Integer> hm = new HashMap<>();
hm.put("li", 20);
hm.put("wang", 22);
hm.put("liyang", 40);
Set<String> keySet = hm.keySet();
Iterator<String> it = keySet.iterator();
while (it.hasNext()) {
String key = it.next();
Integer value = hm.get(key);
System.out.println(key + " = " + value);
}
for (String key : keySet) {
System.out.println(key + " = " + hm.get(key));
}
}
}
运行结果:
LinkedHashMap:
package org.lxy.map;
import java.util.LinkedHashMap;
/**
* @author menglanyingfei
* @date 2017-3-21
*/
public class Demo3_LinkedHashMap {
/**
* 怎么存就怎么取
* @param args
*/
public static void main(String[] args) {
LinkedHashMap<String, Integer> lhm = new LinkedHashMap<>();
lhm.put("li", 20);
lhm.put("lili", 20);
lhm.put("liyang", 21);
System.out.println(lhm); // 注意, 存的顺序和运行显示的顺序一致!
}
}
运行结果:
TreeMap:
package org.lxy.map;
import java.util.TreeMap;
/**
* @author menglanyingfei
* @date 2017-3-31
*/
public class Demo5_TreeMap {
/**
* @param args
*/
public static void main(String[] args) {
TreeMap<String, Integer> tm = new TreeMap<>();
tm.put("C", 3);
tm.put("Java", 1);
tm.put("PHP", 6);
// 用法很类似HashMap
System.out.println(tm); // {C=3, Java=1, PHP=6}
}
}
本文地址:
http://blog.csdn.net/menglanyingfei/article/details/68934729
本文源自: http://blog.csdn.net/menglanyingfei
本文小结: 总之, 在Java开发应用中, 集合框架的使用可以大大减少程序员自定义的存储容器和排序算法的相关代码, 熟练掌握对编码的效率有一定的帮助, 如果还有对ArrayList, HashSet, HashMap等类的具体方法还有问题, 可以查询Java JDK帮助文档(.chm文件), 并自己动手都实现一篇, 以加强理解和记忆!
希望大家能多多评论和指点我的文章, 以相互交流和学习, 如果您觉得写得还不太差劲或者对您有一丁点的帮助, 麻烦动个小手点个赞, (非常感谢你的这个小举动! 因为这是对作者最大的肯定和赞赏!), 也欢迎大家到我的博客里看看对您有帮助的文章, 也欢迎转载,但真诚希望在明确位置注明超链接的出处! 谢谢!
下次总结分享, 再见!