Map容器:键值对(Key-Value);关联数组。
Map里面的key和value都可以是任意的对象,比如Integer,或者一个很复杂的类对象。
Java里面的Map都封装得比较好了,所以使用的话主要是要了解Java库提供了啥函数。下面看示例:
package com;
/**
* @author lv.lang
*
*/
import java.util.Map;
import java.util.Random;
import java.util.HashMap;
public class MapTest {
public static void main(String[] args) {
Random rand = new Random(47);
Map<Integer, Integer> m = new
HashMap<Integer, Integer>();
for(int i=0; i < 10000; i++)
{
int r = rand.nextInt(20);
Integer freq = m.get(r);//get方法由键获取值
m.put(r, freq == null ? 1 : freq + 1);//put方法存储键值对
}
System.out.println(m);
System.out.println(m.containsKey(16));//判断是否存在某一个key
System.out.println(m.containsValue(500));//判断是否存在某一个value
}
}
Map的使用不难,但是也有在某些地方谈到面试就会问用没用过Map,这就足够了,当然要求高的也会问Map背后的实现机制,之前自己面一家游戏公司就被问到了,答得不好。可能就是码农跟高级程序员的区别吧,一个只会用,一个我自己随时设计实现一个都ok。