集合框架__【Map集合】【keySet】【entrySet】【Map.Entry】
来源:互联网 发布:星际争霸2 mac 编辑:程序博客网 时间:2024/05/17 06:01
Map集合
该集合存储键值对,一对一对存储,而且要保证键的唯一性1,添加。
put(K key, V value)当往同一个键上存入了两个值,原有的值会被新的值替换,并由put方法返回
putAll(Map<? extends K,? extends V> m)
2,删除。
clear()
remove(Object key)
3,判断。
containsValue(Object value)
containsKey(Object key)
isEmpty()
4,获取。
get(Object key)//可以通过get方法的返回值来判断一个件是否存在,是否为null
size()
values()
重点:
entrySet()
keySet()
Map的子类
|--Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。在jdk1.0.版本出现,效率低。
|--HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。用于替代hashtable,出现于jdk1.2.效率高。
|--TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行排序。
Map类似于Set,Set底层就是使用了Map集合
常见操作示例:
import java.util.*;class MapDemo{public static void sop(Object obj){System.out.println(obj);}public static void main(String[] args) {Map<String,String> map = new HashMap<String,String>();map.put("01","haha1");map.put("02","haha2");map.put("03","haha3");map.put("03","ha哈哈哈");//当往同一个键上存入了两个值,原有的值会被新的值替换,并由put方法返回sop("containsKey:"+map.containsKey("001"));//sop("remove: "+map.remove("02"));sop("get: "+map.get("020"));//没有则返回nullmap.put("04",null);sop("get: "+map.get("04"));//可以通过get方法的返回值来判断一个件是否存在,是否为nullsop(map);//获取map集合中所有的值}}
map集合两种取出方式:keySet和entrySet
1,keySet:将map集合转成set集合再通过迭代器取出
————即:将map中所有的键存入到Set集合。因为Set具备迭代器,可以通过迭代方式获取所有的键,再根据get方法,获取每个键对应的值
2,entrySet:
————Set<Map.Entry<k,v>> entrySet:将map集合中的映射关系存入到set集合中;这个关系的数据类型是Map.Entry,
Map.Entry中的 Entry是一个接口,是Map接口的一个内部接口
示例
import java.util.*;class MapDemo2 {public static void sop(Object obj){System.out.println(obj);}public static void main(String[] args) {Map<String,String> map = new HashMap<String,String>();map.put("01","haha01");map.put("04","haha04");map.put("03","haha03");map.put("02","haha02");//entrySetSet<Map.Entry<String,String>> entrySet = map.entrySet();//将Map集合中映射关系取出,存入到Set集合Iterator<Map.Entry<String,String>> it = entrySet.iterator();while (it.hasNext()){Map.Entry<String,String> me = it.next();String key = me.getKey();//getKey和getValue是Map.Entry<K,V>的方法String value = me.getValue();//sop("key= "+key+" , value= "+value);}//keySetSet<String> keySet = map.keySet();//①获取map集合所有键的Set集合,keySet();Iterator<String> it = keySet.iterator();//②通过Set集合迭代器获取键值while (it.hasNext()){String key = it.next();String value = map.get(key);//③通过键值获取其对应的值sop("key= "+key+" ,value= "+value);}}}
Map.Entry
Entry是Map接口的一个内部接口
在源码中的实现示例:
interface Map{public static interface Entry//内部接口,static是定义在局部的,所以看到静态接口一定是内部接口{public abstract Object getKey();public abstract Object getValue();}}class HashMap implements Map{class Haha implements Map.Entry//内部类,实现接口的内部类{public Object getKey(){};public Object getValue(){};}}
图解:
4 0
- 集合框架__【Map集合】【keySet】【entrySet】【Map.Entry】
- Java集合框架-3.【泛型】【Map集合】【keySet】【entrySet】【Map.Entry】
- 集合-(Map-keySet)-(Map-entrySet)
- Map集合 键值对 映射关系 Hashtable HashMap TreeMap keySet entrySet Map.Entry
- 集合框架--Map集合entrySet
- 【Map使用】遍历Map集合案例keySet()和 entrySet()
- Map.Entry和Map中的map.keySet()、map.entrySet()详解
- 集合框架——Map的两种取出方式(keySet和entrySet)
- map集合遍历,KeySet()方法与entrySet()方法差别
- Map集合的两种取出方式(keySet、entrySet)
- Map集合中的两种取出方式keySet和entrySet
- Map集合中value()与keySet()、entrySet()区别
- 黑马程序员------集合(No.1)(Map集合、Map共性方法、keySet、entrySet)
- Map集合中Set<Entry<Character,Integer>>entrySet=map.entrySet();
- Map---keySet---entrySet
- map的keySet entrySet
- Map集合的EntrySet方法
- Map集合的四种遍历方式以及Map集合中value()方法与keySet()、entrySet()区别
- 成本要素类别
- Android之工具类说明与帮助
- 心灵的碎片
- maven 装载本地jar
- [Java] 解决异常:“The last packet sent successfully to the server was 0 milliseconds ago.
- 集合框架__【Map集合】【keySet】【entrySet】【Map.Entry】
- c/c++创建Windows服务
- JavaScript社区开发者调查:服务端JS盛行,Backbone.js使用最多
- Monkey测试简介
- JSP中out对象的方法总结
- 开始记录东西了
- Linux 常用命令
- 测试单反斜杠``和$()在shell中的区别
- NGUI 动态字体边缘模糊,毛边的问题解决办法