Map——映射
An object that maps keys to values.A map cannot contain duplicate keys;each key can map to at most one value.
Map是将键映射到值的对象,一个映射不能包含重复的键,一个键最多只能映射到一个值。
1、Map是一个接口,它的实现类:HashMap
[java] view plain copy print ?
- import java.util.HashMap;
-
- public class HashMap1
- {
- public static void main(String[] args)
- {
- HashMap map = new HashMap();
-
- map.put("a", "zhangsan");
- map.put("b", "lisi");
- map.put("c", "wangwu");
- map.put("a", "zhaoliu");
-
- System.out.println(map);
-
-
- String value = (String)map.get("b");
- System.out.println(value);
-
- String value2 = (String)map.get("d");
- System.out.println(value2);
-
- }
- }
import java.util.HashMap;
public class HashMap1
{
public static void main(String[] args)
{
HashMap map = new HashMap();
map.put("a", "zhangsan");
map.put("b", "lisi");
map.put("c", "wangwu");
map.put("a", "zhaoliu");
System.out.println(map);
//打印{a=zhaoliu, c=wangwu, b=lisi}
String value = (String)map.get("b");
System.out.println(value); //打印lisi
String value2 = (String)map.get("d");
System.out.println(value2); //打印null
}
}
HashMap存入数据使用put()方法,取出特定键的值使用get()方法。
对于HashMap的keySet()方法返回此映射中所包含的键的 Set
视图,values()方法返回此映射所包含的值的 Collection
视图。
Map的keySet()方法会返回key的集合,因为Map的键是不能重复的,因此keySet()方法的返回类型是Set;而Map的值是可以重复的,因此values()方法的返回类型是Collection,可以容纳重复的元素。
2、使用HashMap统计命令行参数及个数:如java MapTest4 hello world hello welcome
[java] view plain copy print ?
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Set;
-
- public class MapTest4
- {
- public static void main(String[] args)
- {
- HashMap map = new HashMap();
-
- for(int i =0; i < args.length;i++ )
- {
- if(null==map.get(args[i]))
- {
- map.put(args[i],new Integer(1));
- }
- else
- {
- int num = ((Integer)map.get(args[i])).intValue();
- map.put(args[i], new Integer(num +1));
- }
- }
-
- Set set = map.keySet();
-
- for(Iterator iter = set.iterator();iter.hasNext();)
- {
- String key = (String)iter.next();
- Integer value = (Integer)map.get(key);
-
- System.out.println(key + ":" + value);
- }
-
- }
- }
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class MapTest4
{
public static void main(String[] args)
{
HashMap map = new HashMap();
for(int i =0; i < args.length;i++ )
{
if(null==map.get(args[i]))
{
map.put(args[i],new Integer(1));
}
else
{
int num = ((Integer)map.get(args[i])).intValue();
map.put(args[i], new Integer(num +1));
}
}
Set set = map.keySet();
for(Iterator iter = set.iterator();iter.hasNext();)
{
String key = (String)iter.next();
Integer value = (Integer)map.get(key);
System.out.println(key + ":" + value);
}
}
}
以上是先得到map的一个key集,然后使用迭代器遍历key,然后使用map.get(key)得到值,从而实现map的遍历
2、使用Map的内部类Entry来遍历Map
[java] view plain copy print ?
- import java.util.HashMap;
- import java.util.Iterator;
- import java.util.Map;
- import java.util.Set;
-
- public class MapTest5
- {
- public static void main(String[] args)
- {
- HashMap map = new HashMap();
-
- map.put("a", "aaaaa");
- map.put("b", "bbbbb");
- map.put("c", "cccccc");
- map.put("d", "ddddd");
-
- Set set = map.entrySet();
-
- for(Iterator iter = set.iterator();iter.hasNext();)
- {
- Map.Entry entry = (Map.Entry)iter.next();
-
- String key = (String)entry.getKey();
- String value = (String)entry.getValue();
-
- System.out.println(key + ":" + value);
- }
- }
- }
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MapTest5
{
public static void main(String[] args)
{
HashMap map = new HashMap();
map.put("a", "aaaaa");
map.put("b", "bbbbb");
map.put("c", "cccccc");
map.put("d", "ddddd");
Set set = map.entrySet();
for(Iterator iter = set.iterator();iter.hasNext();)
{
Map.Entry entry = (Map.Entry)iter.next();
String key = (String)entry.getKey();
String value = (String)entry.getValue();
System.out.println(key + ":" + value);
}
}
}
3、TreeMap,与TreeSet类似,只不过TreeMap是按照映射的键(key)的顺序来进行排序的。