JAVA集合-Map
来源:互联网 发布:跟章泽天是校友 知乎 编辑:程序博客网 时间:2024/06/12 20:08
Map 集合
一、感性认知:
1、我们学过那么多的集合了,为什么还要学习map集合?
二、理性认知:
java.util.map[I]
Map[I]
SortedMap[I]
TreeMap[C] implements SortedMap[I]
HashMap[C]
LinkedHashMap[C] implements Map[I]
Dictionary[C]
Hashtable[C] implements Map[I]
1、HashMap
a、由键可以取值,但是键是唯一的,值可以是重复的
b、hashMap是有key的hash值来排序的,在遍历的时候是随机取出数据的,不是线程 同步的,线程不安全
c、hashMap 经常用到的方法 clear() remove() put() get() putAll()
d、有四种遍历方式,推荐大家使用
for(Map.entry<k,v> entry : map.entrySet()){
syso(entry.getkey()+""+entry.getvalue)
}
ps(尤其是容量大的时候,效果最好)
e、它的键只能一个可以为null,它的值可以有多个null
d、应用场景:数据没有顺序,有键和值存在映射关系
2、Hashtable
a、现在基本不用,现在有一个替代的集合(currentHashMap)
b、它是线程同步的,线程安全,但是在存取数据的时候,只能有一个线程操作,速度 慢
c、它的键值不可以为null
3、TreeMap
a、它是有顺序的,它的顺序是由key来决定的(因为treeMap 是有key的hash来存放key
b、它的排序(默认自然排序升序)是重写comepareTo方法
c、应用场景:需要有序的数据
4、LinkedHashMap
a、它的顺序是先存先取
b、在存取速度是一般情况是慢于hashMap的,但是当hashMap的容量很大,数据很 少的时候,linkedHashMap的存取速度大于hashMap
c、应用场景: 比如购物车
5、Map集合的四种遍历方式
a、直接拿到key来遍历 for(String s : map.keySet())
b、用iterator遍历
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
c、推荐大家使用的方式
for(Map.Entry<String, String> entry : map.entrySet())
d、直接根据value来遍历 for(String v : map.values())
6、如何对HashMap中的value进行排序。
a、把当前hashMap中的entry<>对象存放到set集合中
b、把entry的set集合存放到List集合中
c、对这个list集合进行排序
d、排序好之后,存放到map集合中(LinkedHashMap)
0 0
- JAVA集合-Map集合
- java集合------Map集合
- Java集合----Map集合
- java集合------Map集合总结
- Java集合之-Map集合
- Java集合—Map集合
- java集合----------Map
- java笔记 Map集合
- java------集合Map
- java遍历Map集合
- java Map集合练习
- java集合(Map)
- java 遍历map集合
- java之Map集合
- Java 集合(Map)
- java 循环map 集合
- Java-Map集合
- java集合类Map
- 网络流一·Ford-Fulkerson算法
- diff与patch,diff的三种模式说明
- 连等初始化问题
- Android Studio 中如何引入 layoutlib.jar?
- Codevs 4909 寂寞的堆
- JAVA集合-Map
- iOS-多线程详解
- JAVA--IO流
- 第三周 项目二——建设“顺序表”算法库
- JDK,JRE,class及jar的导入
- js学习笔记:基本包装类型
- 多个Java object 概念简单解释
- JAVA 多线程
- oracle where 与having 的区别