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

java Map

2014-03-20 13:20 357 查看
什么是map?

答:映射关系,也有人称为字典,Map集合里存在两组值,一组是key,一组是value。

注意:

1、Map里的key不允许重复。通过key总能找到唯一的value与之对应。

2、Map里的key集存储方式和对应的Set集合中的元素存储方式一致;
例子:

学生都有一个学号,我们能点学号就能找到某个学生,好比这个学号就是key,学生就是value。

Map.Entry是Map接口的内部接口,专门用来保存key-value内容。

如何遍历map中的元素?

答:

按照最正统的做法,所有的Map集合的内容都要依靠Iterator输出,以上虽然是完成了输出,

但是完成的不标准,Map集合本身并不能直接为Iterator实例化,如果此时非要使用Iterator

输出Map集合中内容的话,则要采用如下的步骤:

方法一:

1.通过entrySet方法变成Set对象

2.调用Set的Iterator方法,此时每个Iterator对象是Map.Entry对象

3.对Map.Entry分离出 key - value

方法二:

1.通过keySet得到Map集合多有key的Set集合

2.调用Set的Iterator方法,此时每个Iterator对象是key值

3.通过Map的getValue(key)得到value值

//1、遍历map中的元素

// Set<Integer> keys = map.keySet();

// for(Integer key : keys){

// String value = map.get(key);

// System.out.println(key+"="+value);

// }
//2、遍历map中的元素
Set<Map.Entry<Integer, String>> entries = map.entrySet();
for(Map.Entry<Integer, String> entry : entries){
System.out.println(entry.getKey()+"="+entry.getValue());
}

代码:<pre code_snippet_id="246672" snippet_file_name="blog_20140320_1_3371977" name="code" class="java">package net.mylearner.a3_20_pm;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;

public class MapDemo {
public static void main(String[] args) {
Map<Integer, String> students = new HashMap<Integer, String>();
students.put(1, "name1");
students.put(2, "name2");
students.put(3, "name3");
// 如何遍历map中的元素?
// 1、

// System.out.println(students.size());
System.out.println("方法一:");
Set<Integer> key = students.keySet();
for (Integer integer : key) {
System.out.println(integer + " " + students.get(integer));
}
// 2、
System.out.println("方法二:");
Set<Map.Entry<Integer, String>> setStudents = students.entrySet();
for (Entry<Integer, String> entry : setStudents) {
System.out.println(entry.getKey()+": "+entry.getValue());
}

// void clear()
// 从此映射中移除所有映射关系。

// Object clone()
// 返回此 HashMap 实例的浅表复制:并不克隆键和值本身。

// boolean containsKey(Object key)
// 如果此映射包含对于指定的键的映射关系,则返回 true。

// boolean containsValue(Object value)
// 如果此映射将一个或多个键映射到指定值,则返回 true。

// Set<Map.Entry<K,V>> entrySet()
// 返回此映射所包含的映射关系的 collection 视图。

// V get(Object key)
// 返回指定键在此标识哈希映射中所映射的值,如果对于此键来说
// ,映射不包含任何映射关系,则返回 null。

// boolean isEmpty()
// 如果此映射不包含键-值映射关系,则返回 true。

// Set<K> keySet()
// 返回此映射中所包含的键的 set 视图。

// V put(K key, V value)
// 在此映射中关联指定值与指定键。

// void putAll(Map<? extends K,? extends V> m)
// 将指定映射的所有映射关系复制到此映射中,这些映射关系将替换
// 此映射目前针对指定映射的所有键的所有映射关系。

// V remove(Object key)
// 如果此映射中存在该键的映射关系,则将其删除。

// int size()
// 返回此映射中的键-值映射关系数。

// Collection<V> values()
// 返回此映射所包含的值的 collection 视图

}

}





                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: