Map接口__无处不在的Map

<script id="wiz_todo_script_id" charset="utf-8" type="text/javascript" src="file:///C:%5CProgram%20Files%20(x86)%5CWizNote%5CWizTools%5Chtmleditor%5Ctodo.js"></script><script id="wiz_img_resize_script_id" charset="utf-8" type="text/javascript" src="file://C:%5CProgram%20Files%20(x86)%5CWizNote%5CWizTools%5Chtmleditor%5Cdragresize.js"></script><script id="wiz_editor_localize" charset="utf-8" type="text/javascript" src="C:%5CProgram%20Files%20(x86)%5CWizNote%5CWizTools%5Chtmleditor%5Clocalize.js?t=1450247148347"></script><script id="wizEditor" charset="utf-8" type="text/javascript" src="C:%5CProgram%20Files%20(x86)%5CWizNote%5CWizTools%5Chtmleditor%5Cplugins%5CwizEditor.js?t=1450247148368"></script><script id="wizEditorHelper" charset="utf-8" type="text/javascript" src="C:%5CProgram%20Files%20(x86)%5CWizNote%5CWizTools%5Chtmleditor%5Cplugins%5Ceditor_helper.js?t=1450247148403"></script>

Map接口概述

Map集合很重要。Map集合无处不在。
Map是一个接口,是一个通过“ 键--值  ”(key  --   value)形式存储数据的接口。
Map集合中的key是不能重复,其底层是使用Set集合实现的,其value值是可以重复的。
Map集合常用实现类
    HashMap
    TreeMap
HashMap和TreeMap区别与HashSet与TreeSet的区别完全一致

Map接口中常用方法


添加功能:
    V              put (K   key,V value):添加一个数据,或根据key修改数据
删除功能:
    void         clear( ):移除Map中所有元素
    V               remove(Object    key) : 根据键值删除键值对元素,并把值返回
判断功能:
    boolean   containsKey( Object key) : 判断集合是否包含指定的键
    boolean   containsValue(Object  value):判断集合是否包含指定的值
获取功能:
    Set<K>     keySet(  ) : 获取集合中所有键的集合
    V                 get(Object key) : 根据键获取对应值
    Collection<V>  values( ) : 获取集合中所有值得集合
    Set<Map.Entry< K , V >> entrySet( ) :获取键值对的Set集合 
长度功能:
    int                size( ) : 返回集合中的键值对的个数

HashMap

HashMap是实际使用中最常用的一种Map集合。
HashMap内部对key使用Set进行散列存放。根据key取value值得效率比较高
  1. publicstaticvoid main(String[] args){
  2. //创建Map容器
  3. Map<String,String> map =newHashMap<String,String>();
  4. /*添加功能方法啊*/
  5. // V put(K , V) : 向Map容器添加 一组键值对
  6. map.put("张三","李四");
  7. map.put("王五","赵六");
  8. /*删除功能*/
  9. // V remove(Object key):根据key移除键值对
  10. map.remove("张三");
  11. // void clear() : 清除Map容器中所有的元素
  12. map.clear();
  13. /*判断功能*/
  14. // boolean containsKey(Object key):判断Map里面是否包含某个key
  15. map.containsKey("张三");
  16. // boolean containsValue(Object value):判断Map容器是否包含某个值
  17. map.containsValue("李四");
  18. /*获取功能*/
  19. // Set<Key> keySet():获取Map中所有键的集合
  20. Set<String> keys = map.keySet();
  21. // V get(Object key):根据key获取对应的值
  22. String value = map.get("张三");
  23. // Set<Map.Entry<K,V>> entrySet: 获取键值对Set集合
  24. Set<Entry<String,String>> sets = map.entrySet();
  25. for(Entry<String,String> entry : sets){
  26. String key = entry.getKey();
  27. String v = entry.getValue();
  28. }
  29. /*长度功能*/
  30. // int size() :返回集合中所有键值对的个数
  31. int size = map.size();
  32. }
 

TreeMap

TreeMap内部使用红黑树结构对key进行排序存放,所以对TreeMap中存放的key必须进行排序,所以key必须是可排序的
排序方式两种与TreeSet相同.

例子1:
  1. publicstaticvoid main(String[] args){
  2. /* 一般TreeMap存放数据 */
  3. TreeMap<String,String> treeMap =newTreeMap<String,String>(newComparator<String>(){
  4. @Override
  5. publicint compare(String o1,String o2){
  6. System.out.println("第一个参数:"+o1);
  7. System.out.println("第二个参数:"+o2);
  8. return o1.length()- o2.length();
  9. }
  10. });
  11. /* 添加功能 */
  12. treeMap.put("黄晓明","杨颖");
  13. treeMap.put("文章","姚笛");
  14. }
例子2:
  1. publicclassStudentimplementsComparable<Student>{
  2. privateString name;
  3. publicStudent(){
  4. super();
  5. }
  6. publicStudent(String name){
  7. super();
  8. this.name = name;
  9. }
  10. /**
  11. * 重写compareTo方法
  12. */
  13. @Override
  14. publicint compareTo(Student o){
  15. System.out.println("this是谁?: "+this.getName());
  16. System.out.println("o是谁?: "+o.getName());
  17. returnthis.getName().length()- o.getName().length();
  18. }
  19. publicString getName(){
  20. return name;
  21. }
  22. publicvoid setName(String name){
  23. this.name = name;
  24. }
  25. }
  26.  
  1. publicclassTreeMapDemo{
  2. publicstaticvoid main(String[] args){
  3. TreeMap<Student,String> treeMap =newTreeMap<Student,String>();
  4. Student st1 =newStudent("张三");
  5. Student st2 =newStudent("西门飘雪");
  6. treeMap.put(st1,"张三");
  7. treeMap.put(st2,"李四");
  8. }
  9. }
 
 

Map.Entry

 
Map.Entry:是Map内部定义的一个接口,专门用来保存key    value的内容。
可以通过map集合的entrySet( )方法获取得所有的Map.Entry组成的Set集合。

 

 

  1. TreeMap<Student,String> treeMap =newTreeMap<Student,String>();
  2. Student st1 =newStudent("张三");
  3. Student st2 =newStudent("西门飘雪");
  4. treeMap.put(st1,"张三");
  5. treeMap.put(st2,"李四");
  6. Set<Entry<Student,String>> values = treeMap.entrySet();
  7. for(Entry<Student,String> entry : values){
  8. //获取key
  9. Student st = entry.getKey();
  10. //获取value
  11. String string = entry.getValue();
  12. }
 

猜你喜欢

转载自callmemrt.iteye.com/blog/2264497