Map

通常,我们知道某些键的信息,并想要查找与之对应的元素。映射(map)数据结构就是为此设计。映射用来存放键/值对。

  1. 基本映射操作:

    Java类库为映射提供了两个通用的实现:HashMap 和 TreeMap。散列映射对键进行散列,树映射用键的整体顺序对元素进行排序。并将其组成搜索树。下面代码建立了一个散列映射

    Map<String, employee> staff = new HashMap<>(); //HashMap implements Map
    Employee harry = new Employee("Harry Hacker");
    staff.put("987-98-996",harry);
    ...

    检索对象时,必须使用一个键

    String id = "987-98-996";
    e=staff.get(id);

    键值是唯一的,不能对同一个键存放两个值,如果对同一个键两次调用put方法,第二个值会取代第一个值。remove用于映射中删除给定键对应元素,size方法用于返回映射中的元素数。

  2. 链接散列集与映射
    LinkedHashSet和LinkedHashMap类用来记住插入元素项的顺序。这样就可以避免在散列表中的项从表面上看是随机排列的。当条目插入到表中时,就会并入到双向链表中。

    Map<String,Employee> staff = new LinkedHashMap<>();
    staff.put("123",new employee("Amy"))
    staff.put("234",new employee("Jack"))
    staff.put("345",new employee("Harry"))

    然后,用staffKeySet().iterator()以下列次序枚举键

    123
    234
    345

    并且staff.values().iterator()顺序枚举值

    Amy
    Jack
    Harry