Java-Map集合

来源:互联网 发布:淘宝上开店怎么找货源 编辑:程序博客网 时间:2024/05/21 03:17

---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------GUI编程

Map集合



接口 Map<K,V>
类型参数:
K - 此映射所维护的键的类型
V - 映射值的类型


public interface Map<K,V>将键映射到值的对象。一个映射不能包含重复的键;每个键最


多只能映射到一个值。 


1、添加
 V put(K key, V value) 
          将指定的值与此映射中的指定键关联(可选操作)。 
 void putAll(Map<? extends K,? extends V> m) 
          从指定映射中将所有映射关系复制到此映射中(可选操作)。 


2、删除


 void clear() 
          从此映射中移除所有映射关系(可选操作)。 


 V remove(Object key) 
          如果存在一个键的映射关系,则将其从此映射中移除(可选操作)。 
3、判断


 boolean containsKey(Object key) 
          如果此映射包含指定键的映射关系,则返回 true。 
 boolean containsValue(Object value) 
          如果此映射将一个或多个键映射到指定值,则返回 true。 


4、获取


 V get(Object key) 
          返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回 null。 




Map
|-- HashTable:底层是哈希表数据结构,不允许使用null值和null
键,该集合是线程不同步的


|--HashMap:底层是哈希表数据结构,允许使用null值和null键,该集合是线程不


同步的


|--TreeMap:底层是二叉树数据结构,线程不同步,可以用于给map集合中的键进


行排序




Map集合的两种取出方法:


1、KyeSet :将map集合中所有的键存入到Set集合,可以通过Set的迭代方法取出所有的键,


再根据get方法,获取每一个键对应的值


2、entrySet:将map集合中的映射关系存入到set集合中,而这个关系的数据类型就是:


Map.Entry
通过Set集合的iterator方法遍历只能给个set集合,通过Map.Entry类的内部方法getKey 和


getValue方法即可获得对应的键和值




import java.util.*;
import java.util.Map.Entry;




public class MapDemo {
public static void main(String[] args){
Map<String,String>map = new HashMap<String,String>();
//添加元素
map.put("01", "张三");
map.put("02", "Lisi");
map.put("03", "wangwu");
//删除元素
map.remove("01");
map.put(null, "班主任");
//通过key获得value
System.out.println(map.get(null));
//获取整个map中的value
Collection<String> col = map.values();

System.out.println(col);
//keySet的使用方法

Iterator<String> it = map.keySet().iterator();

while(it.hasNext()){
String value = map.get(it.next());
System.out.println(value);
}

//entrySet的使用方法
Iterator<Entry<String,String>> entryit = map.entrySet


().iterator();

while(entryit.hasNext()){
Map.Entry<String, String> mapEntry = (Entry<String, 


String>) entryit.next();
String key = mapEntry.getKey();
String value = mapEntry.getValue();
System.out.println("key:"+key+"      value:"+value);
}
System.out.println(map);
}
}




TreeMap<K,V> :可以进行排序的Map集合


排序方法基于红黑树(Red-Black tree)的 NavigableMap 实现。该映射根据其键的自然顺


序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方


法。 


TreeMap() 
          使用键的自然顺序构造一个新的、空的树映射。 
TreeMap(Comparator<? super K> comparator) 
          构造一个新的、空的树映射,该映射根据给定比较器进行排序。 













0 0