您的位置:首页 > 编程语言 > Java开发

Java-Map集合

2014-09-02 21:56 76 查看
---------------------- 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) 

          构造一个新的、空的树映射,该映射根据给定比较器进行排序。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: