[关闭]
@liruiyi962464 2017-03-21T04:06:10.000000Z 字数 3026 阅读 480

集合Map(映射)*

java

遍历方式

  1. //通过keySet()来获得key,然后遍历Value
  2. Set<Integer> keySet = hashMap.keySet();
  3. for (Integer integer : keySet) {
  4. System.out.println(integer+"<------>"+hashMap.get(integer));
  5. }
  6. //通过value输出
  7. Collection<String>value = hashMap.values();
  8. for (String string : value) {
  9. System.out.println(string);//不可以根据value获取key值
  10. }
  11. //通过键值对(Entry) 返回key,和value
  12. Set<Entry<Integer, String>> entrySet = hashMap.entrySet();
  13. for (Entry<Integer, String> entry : entrySet) {
  14. System.out.println(entry.getKey()+"<------>"+entry.getValue());
  15. }

Map接口详解

  • 是一个存储关键字的/值得对象,关键字和元素都可以为对象
  • 关键字是唯一的,只可以重复
  • 有些映射可以接收null关键字和null值,而有的不行
  • 下面的接口支持映射
接口 描述
Map 映射唯一关键字给的值
Map.Entey 描述映射中的元素(关键字/值对)这是Map的一个内部类
SortedMap 扩展Map以便关键字按升序保持

Map.Entry

  • Map.Entry 接口代表映射(键-值对)类型,是Map的嵌套类型
  • Map接口定义的entrySet()方法返回包含映射项的Entry的集合(Set),集合中的元素师Map.Entry
  • Map.Entry 接口定义的方法
    K getKty()
    K getValue()
    V setValue(V value)

HashMap

HashMap

  • 散射映射不能保证元素输出的顺序
  • 元素加入散射映射的顺序不一定是他们被迭代读出的顺序

HashMap实例

  1. HashMap<Integer, String> hashMap = new HashMap<Integer, String>();
  2. hashMap.put(1, "a");
  3. hashMap.put(1, "b");
  4. //当俩个key一样时 覆盖旧的值
  5. //key值是唯一确定的,出现重复时覆盖旧值
  6. System.out.println(hashMap);
  7. hashMap.put(2, "c");
  8. hashMap.put(3, "c");
  9. //value可以重复
  10. System.out.println(hashMap);
  11. //通过key获得value
  12. System.out.println(hashMap.get(2));
  13. //通过key值删除value
  14. System.out.println(hashMap.remove(2));
  15. System.out.println(hashMap);
  16. //通过keySet()来获得key,然后遍历Value
  17. Set<Integer> keySet = hashMap.keySet();
  18. for (Integer integer : keySet) {
  19. System.out.println(integer+"<------>"+hashMap.get(integer));
  20. }
  21. //通过value输出
  22. Collection<String>value = hashMap.values();
  23. for (String string : value) {
  24. System.out.println(string);//不可以根据value获取key值
  25. }
  26. //返回key,和value
  27. Set<Entry<Integer, String>> entrySet = hashMap.entrySet();
  28. for (Entry<Integer, String> entry : entrySet) {
  29. System.out.println(entry.getKey()+"<------>"+entry.getValue());
  30. }

TreeMap

TreeMap

  • 提供按排序顺序存储关键字/值的对象
  • 允许快速检索
  • 树映射保证它的元素按关键字升序排序

TreeMap

  1. TreeMap<Integer, String> treeMap = new TreeMap<Integer, String>();
  2. //按照key排序
  3. treeMap.put(1, "一");
  4. treeMap.put(2, "二");
  5. treeMap.put(3, "三");
  6. treeMap.put(4, "四");
  7. System.out.println(treeMap);
  8. //遍历.通过key值
  9. Set<Integer> keySet = treeMap.keySet();
  10. for (Integer integer : keySet) {
  11. System.out.println(integer+"<-----1----->"+treeMap.get(integer));
  12. }
  13. //遍历.通过value值
  14. Collection<String> values = treeMap.values();
  15. for (String string : values) {
  16. System.out.println(string);//不可以根据value获取key值
  17. }
  18. //遍历返回key,和value
  19. Set<Entry<Integer, String>> entrySet = treeMap.entrySet();
  20. for (Entry<Integer, String> entry : entrySet) {
  21. System.out.println(entry.getKey()+"<-----3----->"+entry.getValue());
  22. }
  23. //返回一个与此映射中的最小键关联的键-值映射关系;如果映射为空,则返回 null。
  24. System.out.println(treeMap.firstEntry());
  25. //返回此映射中当前第一个(最低)键。
  26. System.out.println(treeMap.firstKey());
  27. //返回一个键-值映射关系,它与小于等于给定键的最大键关联;如果不存在这样的键,则返回 null。
  28. System.out.println(treeMap.floorEntry(2));
  29. //返回小于等于给定键的最大键;如果不存在这样的键,则返回 null。
  30. System.out.println(treeMap.floorKey(2));
  31. //返回一个键-值映射关系,它与大于等于给定键的最小键关联;如果不存在这样的键,则返回 null
  32. System.out.println(treeMap.ceilingEntry(1));
  33. // 返回大于等于给定键的最小键;如果不存在这样的键,则返回 null
  34. System.out.println(treeMap.ceilingKey(1));
  35. //返回此 TreeMap 实例的浅表副本
  36. System.out.println(treeMap.clone());
  37. //返回对此映射中的键进行排序的比较器;如果此映射使用键的自然顺序,则返回 null
  38. treeMap.comparator();
  39. System.out.println(treeMap);
  40. //从此映射中移除所有映射关系。
  41. treeMap.clear();
  42. System.out.println(treeMap);
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注