Map集合
Map接口定义的集合,又称查找表。用于储存映射对–Key(索引)-Value(索引对象)。
Map集合常用的方法:
//将Key-Value映射对存进Map
V put(K key, V Value);
//得到索引值所对应的Value
V get(Key);
// Map中是否有Key
boolean containsKey(Object Key);
//Map中是否有Value
boolean containsValue(Object Value);
HashMap
得到Key的HashCode值,通过Hash算法计算要存放的bucket(桶)中。相同的Key,采用链表的方式存储。
HashMap在大量的数据存储时,查询得快。值需要根据Key查找Value,一般查找一到二次。
Map集合的遍历(迭代)
当需要处理Map集合中的每个元素时,需要进行迭代处理,有
迭代Key、迭代Entry 两种方式。
迭代Key:
Map = ..... //Map初始化
Map<Charactor> KeySet = Map.keySet();
for(Iterator<Charactor> i = KeySet.itarator(); it.hasNext(); ){
Charactor Key = it.next();
Integer Value = Map.get(Key);
System.out.println(Key + " " + Value);
}
迭代Entry
Map = ..... // Map的初始化
Map<Enter<Charactor, Integer>> entires = Map.entrySet();
for(Entry<Charactor, Integer> e : entires){
Charactor Key = e.getKey();
Integer Value = e.getValue();
System.out.println(Key + " " + Value);
}
Map常见的应用场景
- 映射关系
如:联系人列表
Map<String, List<Contact> contacts;
- 动态对象
接着1中的映射关系,创建Contact类
class Contact{.......
}
Contact someone = new Contacts();
someone.set(..........);
someone.set(............);
- 查找表
登录用户根据用户名查找用户对象的过程
public User login(String name, String pwd){
User user = users.get(name);
if(user==null)
throw new RuntimeException("没有此用户!");
if(!user.pwd.equels(pwd))
throw new RuntimeException("密码错误");
else
return user;//登录成功,返回用户信息。
}
User guy = login("Tom", "1234");
System.out.println(guy.name + "登录成功!");
- 缓存
如验证码图片的缓存,可以减少生产图片的次数,提高图片处理效率。
Map<String, Byte[]> codes;
915

被折叠的 条评论
为什么被折叠?



