黑马程序员:Map集合:Hashtable、HashMap、TreeMap介绍
2013-11-10 16:07
531 查看
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
Map集合:该集合存储键值对,一对一对往里存,而且要保证键的唯一性,双列集合
当数据之间存在着映射关系时,就要先想到Map集合
1.添加
put(key,value)
putAll(Map<? extends K,? extends V> m)
2.删除
clear()
remove(Object key)
3.判断
containsKey(Object key)
containsValue(Object Value)
isEmpty();
4.获取
get(Object key)
size()
values()
entrySet()
keySet()
Map
|--Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的,效率低
|--HashMap:底层是哈希表数据结构,允许使用null键null值,该集合是线程不同步的,效率高
|--TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的key进行排序
和Set很像
Set底层就是使用了Map集合
Map共性方法应用:
Map集合的两种取出方式:
1.Set<K> keySet():将Map中所有的键存入Set集合,因为Set集合具备迭代器,所以可以迭代方式取出所有的键,再根据Map集合的get(),获取每一个键对应的值
Map集合的取出原理:将Map集合转成Set集合,在通过迭代器取出
2.Set<Map.Entry<K,V>> entrySet():将Map集合中的映射关系存入到Set集合中,而这个关系的数据类型就是Map.Entry
Map.Entry:Entry也是一个接口,它是Map接口中的一个内部接口
keySet()应用
*/
entrySet()应用
*/
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------
Map集合:该集合存储键值对,一对一对往里存,而且要保证键的唯一性,双列集合
当数据之间存在着映射关系时,就要先想到Map集合
1.添加
put(key,value)
putAll(Map<? extends K,? extends V> m)
2.删除
clear()
remove(Object key)
3.判断
containsKey(Object key)
containsValue(Object Value)
isEmpty();
4.获取
get(Object key)
size()
values()
entrySet()
keySet()
Map
|--Hashtable:底层是哈希表数据结构,不可以存入null键null值,该集合是线程同步的,效率低
|--HashMap:底层是哈希表数据结构,允许使用null键null值,该集合是线程不同步的,效率高
|--TreeMap:底层是二叉树数据结构,线程不同步,可以用于给Map集合中的key进行排序
和Set很像
Set底层就是使用了Map集合
Map共性方法应用:
import java.util.*; class MapDemo { public static void main(String[] args) { Map<String,String> map = new HashMap<String,String>(); //添加元素,key相同,value不相同,则后存入value覆盖前存入的 sop(map.put("01","num1"));//输出null,因为01没有前一个值(put返回的是key对应的前一个value值) sop(map.put("01",null));//输出num1,01前一个值是num1 HashMap可以使用null当作Key或者Value的值 sop(map.put("01","num2"));//输出null,01前一个值是null map.put("02","num3"); map.put("03","num3"); sop(map); //删除元素 map.remove("03"); sop(map); //map.clear(); //清空 //判断是否存在key为02的值 sop(map.containsKey("02")); //判断是否存在Value为"num3"的值 sop(map.containsValue("num3")); sop(map.isEmpty()); //获取元素 sop(map.get("02")); sop(map.size()); //返回所有值 Collection<String> cl = map.values(); sop(cl); } public static <T> void sop(T obj) { System.out.println(obj); } }
Map集合的两种取出方式:
1.Set<K> keySet():将Map中所有的键存入Set集合,因为Set集合具备迭代器,所以可以迭代方式取出所有的键,再根据Map集合的get(),获取每一个键对应的值
Map集合的取出原理:将Map集合转成Set集合,在通过迭代器取出
2.Set<Map.Entry<K,V>> entrySet():将Map集合中的映射关系存入到Set集合中,而这个关系的数据类型就是Map.Entry
Map.Entry:Entry也是一个接口,它是Map接口中的一个内部接口
interface Map { public static interface Entry { public abstract Object getKey(); public abstract Object getValue(); } }/*
keySet()应用
*/
import java.util.*; class MapDemo { public static void main(String[] args) { Map<String,String> map = new HashMap<String,String>(); map.put("01","num1"); map.put("02","num2"); map.put("03","num3"); map.put("04","num4"); //通过keySet()获取Map中的key值存入到Set集合中 Set<String> keySet = map.keySet(); //String泛型和Key类型一致 for (Iterator<String> it=keySet.iterator(); it.hasNext(); ) { String key = it.next(); //通过Set集合迭代获取key值 sop(key+"="+map.get(key)); //通过Map集合&key值获取key对应的Value值 } } public static <T> void sop(T obj) { System.out.println(obj); } }/*
entrySet()应用
*/
import java.util.*; class MapDemo { public static void main(String[] args) { Map<String,String> map = new HashMap<String,String>(); map.put("01","num1"); map.put("02","num2"); map.put("03","num3"); map.put("04","num4"); Set<Map.Entry<String,String>> entrySet = map.entrySet(); for (Iterator<Map.Entry<String,String>> it=entrySet.iterator(); it.hasNext(); ) { Map.Entry<String,String> me = it.next(); sop(me.getKey()+"="+me.getValue()); //用Map.Entry接口下的getKey和getValue方法 } } public static <T> void sop(T obj) { System.out.println(obj); } }
----------------------
ASP.Net+Android+IOS开发、.Net培训、期待与您交流! ----------------------详细请查看:http://edu.csdn.net
相关文章推荐
- 黑马程序员 java 基础 毕向东 面向对象 集合框架 Map HashTable HashMap TreeMap
- 黑马程序员——Map集合:HashTable,HashMap,TreeMap
- Map集合分类介绍(hashTable、treeMap、hashMap、linkedHashMap)
- 黑马程序员_学习笔记:10) 集合框架2:Set(HashSet、TreeSet)、Map(Hashtable、HashMap、TreeMap)、Collections、Arrays
- 黑马程序员_温习 集合五 (个人笔记)摘要(Map集合体系---Hashtable集合---HashMap集合----TreeMap集合)
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- Map集合 键值对 映射关系 Hashtable HashMap TreeMap keySet entrySet Map.Entry
- Java 集合系列之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- 黑马程序员_集合3(HashMap,HashTable,TreeMap,Arrays,Collections,高级for,可变参数,静态导入,Date,Calendar,Math,System等)
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- 【Java 集合】List(ArrayList、Vector、LinkedList)、Map(HashMap、HashTable、LinkedHashMap和TreeMap)
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- 黑马程序员_集合3(HashMap,HashTable,TreeMap,Arrays,Collections等)
- 黑马程序员_集合3_(HashMap、HashTable、TreeMap、Arrays、Collections等
- Map集合,HashMap,HashTable,ConCurrentHashMap,利用Iterator输出Map集合,自定义Map的key类型,TreeMap子类详解
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- 黑马程序员---Map集合取出两种方式,HashMap,TreeMap,Collections工具类,数组和集合的互转,
- Java 集合系列14之 Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)
- Java集合--Map总结(HashMap, Hashtable, TreeMap, WeakHashMap等使用场景)