java Map

来源:互联网 发布:怎么搬家划算 知乎 编辑:程序博客网 时间:2024/06/12 00:12

map

将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。

特点:1,数据保存以键值对的方式存储,一个key 对应着一个value

         2,键是唯一的

       Map<key,value>

Map<String, Integer> map = new HashMap<>();//添加键值对方法的返回值,返回是被覆盖值Integer num1 = map.put("c", 18);Integer num2 = map.put("b", 16);Integer num3 = map.put("a", 28);Integer num4 = map.put("c", 19);System.out.println(num1);System.out.println(num2);System.out.println(num3);System.out.println(num4);         System.out.println(map);
nullnullnull18{a=28, b=16, c=19}
可以看出 ,map是输出并不按照输入顺序来,所以有无序性,

出现两次key键c,因键的唯一性,所以只保留第一个键,而值会有新的覆盖掉旧的;

map.put() 向map中添加键值对的方法,返回值是被覆盖掉的旧value值

map的方法摘要

void   map.clear();    从此映射中移除所有映射关系

boolean   map.containsKey(key)    如果此映射包含指定键的映射关系,则返回 true

boolean   map.containsValue(value)        如果此映射将一个或多个键映射到指定值,则返回 true

boolean     map.equals ()    比较指定的对象与此映射是否相等

map.get(key)        返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null

Set<K>    map.keySet()  返回此映射包含的键的Set视图

isEmpty()      如果此映射未包含键-值映射关系,则返回 true

map.put(key,value)       将指定的值与此映射中的指定键关联

map.putAll()        从指定映射中将所有映射关系复制到此映射中

remove(key)      如果存在一个键的映射关系,则将其从此映射中移除

size()     返回此映射中的键-值映射关系数

HashMap


map的三种遍历方式(key转入集合遍历实现)

1,使用map.keySet() 将map中key存入一个集合

   然后集合迭代器遍历key值

   使用map.get(key),根据key遍历value

HashMap<String, Integer> map = new HashMap<>();map.put("h6", 18);map.put("玄觞", 19);map.put("星辰", 20);map.put("大海", 21);Set<String> set = map.keySet();Iterator<String> iterator = set.iterator();while (iterator.hasNext()) {String key = iterator.next();Integer value = map.get(key);System.out.println(key + "," + value);}System.out.println(map);}

2 map.keySet()  将all key存入集合set,for循环遍历,

HashMap<String, Integer> map = new HashMap<>();map.put("h6", 18);map.put("玄觞", 19);map.put("星辰", 20);map.put("大海", 21);Set<String> set = map.keySet();for (String key : set) {Integer value = map.get(key);System.out.println(key + "," + value);}

3 map.entrySet()获取map所有的映射关系放入集合set

HashMap<String, Integer> map = new HashMap<>();map.put("h6", 18);map.put("玄觞", 19);map.put("星辰", 20);map.put("大海", 21);//获取map中所有的entry对象set的集合Set<Entry<String,Integer>> entrySet = map.entrySet();Iterator<Entry<String, Integer>> iterator = entrySet.iterator();while(iterator.hasNext()) {//取出Entry对象Entry<String, Integer> next = iterator.next();//从entry对象中获取key valueString key = next.getKey();Integer value = next.getValue();}

LinkedHashMap  有着链表的特点,有序


TreeMap

Treeset的底层实现就是Treemap,  去重和排序操作相当于对Treemap的key键操作,

//TreeMap 可以对map中键进行排序//向TreeMap key是学生 value是户籍 添加三个键值对//并按年龄排序TreeMap<Student,String> map = new TreeMap<>();map.put(new Student("熊",12),"北极");map.put(new Student("杨柳",13),"太平洋");map.put(new Student("企鹅",11),"南极 ");System.out.println(map);


原创粉丝点击