标签:集合 eem har span 视图 接口 java类库 键/值对 ack
*映射表
* java类库为映射表提供了两个通用的实现 HashMap和TreeMap
* HashMap对键进行散列,TreeMap用键的整体顺序对元素进行排序,构建成搜索树
*
* 与Set相似,HashMap的速度要比TreeMap要快一点,同时不需要按照排列访问,也应该选择HashMap
* 注意,键的值必须是唯一的,如果第二次put了一个同样的键值进去,第二次的值会取代第一次的值,put会
* 返回用这个键参数存储的上一个值
*
* 我们可以获取Map的视图,这是一组实现了Collection接口对象,或者它的子接口的视图
* 有3个视图,分别是
* 键集,值集合(单纯的集合而已,不是set),键/值对集。键和键/值形成了一个Set,这是因为在Map中一个Key
* 只能有一个副本
*
* 下列三个方法返回前面对应介绍的3个视图
* Set<K> keySet() (keySet 不属于hashSet和TreeSet,而是实现了Set接口的某个其他类的对象)
* Collection<V> values()
* Set<Map<key, value>> entrySet()
*
* 不能将元素添加到键集的视图中,因为单纯的添加一个键是没有意义的。
* entrySet也有同样的限制,不过,从概念上讲,添加新的键/值对是有意义的
例子
1 public static void main(String[] args) { 2 3 Map<String, Employee> staff=new HashMap<>(); 4 staff.put("144-25-5464", new Employee("Amy Lee")); 5 staff.put("576-24-2546", new Employee("Harry hacker")); 6 staff.put("334-45-5174", new Employee("Gary Cooper")); 7 staff.put("124-75-0174", new Employee("Francesca Cruz")); 8 9 System.out.println(staff); 10 11 staff.remove("576-24-2546"); 12 13 staff.put("124-75-0174", new Employee("new Francesca Cruz")); 14 15 System.out.println(staff.get("334-45-5174")); 16 17 //迭代访问 18 for (Map.Entry<String, Employee> entry : staff.entrySet()) { 19 String key = entry.getKey(); 20 Employee value = entry.getValue(); 21 System.out.println("key="+key+", value"+value); 22 } 23 }
标签:集合 eem har span 视图 接口 java类库 键/值对 ack
原文地址:http://www.cnblogs.com/westlin/p/5987246.html