<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值得效率比较高。
publicstaticvoid main(String[] args){
//创建Map容器
Map<String,String> map =newHashMap<String,String>();
/*添加功能方法啊*/
// V put(K , V) : 向Map容器添加 一组键值对
map.put("张三","李四");
map.put("王五","赵六");
/*删除功能*/
// V remove(Object key):根据key移除键值对
map.remove("张三");
// void clear() : 清除Map容器中所有的元素
map.clear();
/*判断功能*/
// boolean containsKey(Object key):判断Map里面是否包含某个key
map.containsKey("张三");
// boolean containsValue(Object value):判断Map容器是否包含某个值
map.containsValue("李四");
/*获取功能*/
// Set<Key> keySet():获取Map中所有键的集合
Set<String> keys = map.keySet();
// V get(Object key):根据key获取对应的值
String value = map.get("张三");
// Set<Map.Entry<K,V>> entrySet: 获取键值对Set集合
Set<Entry<String,String>> sets = map.entrySet();
for(Entry<String,String> entry : sets){
String key = entry.getKey();
String v = entry.getValue();
}
/*长度功能*/
// int size() :返回集合中所有键值对的个数
int size = map.size();
}
|
TreeMap
TreeMap内部使用红黑树结构对key进行排序存放,所以对TreeMap中存放的key必须进行排序,所以key必须是可排序的。 排序方式两种与TreeSet相同.
例子1:
publicstaticvoid main(String[] args){
/* 一般TreeMap存放数据 */
TreeMap<String,String> treeMap =newTreeMap<String,String>(newComparator<String>(){
@Override
publicint compare(String o1,String o2){
System.out.println("第一个参数:"+o1);
System.out.println("第二个参数:"+o2);
return o1.length()- o2.length();
}
});
/* 添加功能 */
treeMap.put("黄晓明","杨颖");
treeMap.put("文章","姚笛");
}
例子2:
publicclassStudentimplementsComparable<Student>{
privateString name;
publicStudent(){
super();
}
publicStudent(String name){
super();
this.name = name;
}
/**
* 重写compareTo方法
*/
@Override
publicint compareTo(Student o){
System.out.println("this是谁?: "+this.getName());
System.out.println("o是谁?: "+o.getName());
returnthis.getName().length()- o.getName().length();
}
publicString getName(){
return name;
}
publicvoid setName(String name){
this.name = name;
}
}
publicclassTreeMapDemo{
publicstaticvoid main(String[] args){
TreeMap<Student,String> treeMap =newTreeMap<Student,String>();
Student st1 =newStudent("张三");
Student st2 =newStudent("西门飘雪");
treeMap.put(st1,"张三");
treeMap.put(st2,"李四");
}
}
|
Map.Entry
Map.Entry:是Map内部定义的一个接口,专门用来保存key value的内容。 可以通过map集合的entrySet( )方法获取得所有的Map.Entry组成的Set集合。
TreeMap<Student,String> treeMap =newTreeMap<Student,String>();
Student st1 =newStudent("张三");
Student st2 =newStudent("西门飘雪");
treeMap.put(st1,"张三");
treeMap.put(st2,"李四");
Set<Entry<Student,String>> values = treeMap.entrySet();
for(Entry<Student,String> entry : values){
//获取key
Student st = entry.getKey();
//获取value
String string = entry.getValue();
}
|