码迷,mamicode.com
首页 > 编程语言 > 详细

初识java集合——映射表(Map)

时间:2016-10-22 14:05:31      阅读:154      评论:0      收藏:0      [点我收藏+]

标签:集合   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 }

 

初识java集合——映射表(Map)

标签:集合   eem   har   span   视图   接口   java类库   键/值对   ack   

原文地址:http://www.cnblogs.com/westlin/p/5987246.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!