通常,我们知道某些键的信息,并想要查找与之对应的元素。映射(map)数据结构就是为此设计。映射用来存放键/值对。
基本映射操作:
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方法用于返回映射中的元素数。
链接散列集与映射
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