黑马程序员_Java集合-Map<K,V>接口
来源:互联网 发布:苹果电脑怎么删除软件 编辑:程序博客网 时间:2024/06/05 11:44
---------------------- android培训、java培训、期待与您交流! ----------------------
Map接口可以操作两个值。
比如说:
Key(姓名) value(电话号码)
张三 123123
李四 456456
王五 789789
这样的数据 就可以使用Map存储。使用的时候根据key值去map中查找与其对应的value值。
Map接口旗下有3个子类:
1. HashMap<K,V>
2. Hashtable<K,V>
3. TreeMap<K,V>
常用方法:
NO.
方法
作用
1
public void clear()
清空所有元素
2
public V put(K key,V value)
设置元素的内容 返回该位置上的旧元素
3
public V get(Object key)
根据提供的键(key) 查找值(value)
4
public boolean containsKey(Object key)
查找指定的key是否存在
5
public boolean containsValue(Object value)
查找指定的value是否存在
6
public boolean isEmpty()
判断集合是否为空
7
public Set<Map.Entry<K,V>> entrySet()
将全部的元素变成一个Set
8
public Set<K> keySet()
将全部的key变成Set
9
public int size()
获取结合元素数量
1
public Collection<V> values()
将所有的value变成collection
1
public V remove(Object key)
指定key删除value
1
public void putAll(Map<? extends K,? extends V> m)
增加一组元素
1. HashMap<K,V>
Map中 key值不可以重复。 如果重复了,则新value会覆盖旧value。
如果使用用户自定义类做key 则同样需要同时重写:hashCode()方法和equals()方法。少一个都不行。
如果想完整的使用HashMap<K,V>类那么最少要重写equals()和hashCode()方法。
重写hashCode() 用于获得元素的存储位置。
重写equals() 用于在两个元素的位置相同的时候 比较两个元素的key是否相等。
2. Hashtable<K,V>
Hashtable<K,V>和HashMap<K,V>相比
No.
区别点
HashMap
Hashtable
1
推出版本
JDK1.2
JDK1.0
2
操作
异步操作
同步操作
3
安全性
非线程安全
线程安全
4
性能
比Hashtable 高
比HashMap 低
3. TreeMap<K,V>
import java.util.*;
public class MapDemo {
public static void main(String[] args){
Map<String,String> map = new TreeMap<String,String>();
map.put("No.1","张三");
map.put("No.1","李四");
map.put("No.2","王五");
map.put("No.3","赵六");
map.put("No.4","秦七");
System.out.println(map);
}
}
程序执行结果:
{No.1=李四, No.2=王五, No.3=赵六, No.4=秦七}
TreeMap类同样不允许key重复。并且会自动排序。
Map集合的输出:
在Map中可以保存两个值。 但是实际上在Map接口内部却不是直接保存这两个值。
在Map接口中真正保存的是一个个MapEntry对象。
在一个MapEntry对象保存的才是map中定义的K和V。
因此在Map中不可以直接使用Iterator接口遍历。
范例:Iterator遍历元素。
import java.util.*;
public class MapDemo {
public static void main(String[] args){
Map<Person,String> map = new TreeMap<Person,String>();
map.put(new Person("张三", 20),"No.1");
map.put(new Person("李四", 21),"No.2");
map.put(new Person("李四", 21),"No.3");
map.put(new Person("王五", 64),"No.4");
Set<Map.Entry<Person, String>> set = map.entrySet();
Iterator<Map.Entry<Person, String>> iter = set.iterator();
while(iter.hasNext()){
Map.Entry<Person, String> temp = iter.next();
System.out.println(temp.getKey()+" "+temp.getValue());
}
}
}
范例:foreach遍历元素。import java.util.*;
public class MapDemo {
public static void main(String[] args){
Map<Person,String> map = new TreeMap<Person,String>();
map.put(new Person("张三", 20),"No.1");
map.put(new Person("李四", 21),"No.2");
map.put(new Person("李四", 21),"No.3");
map.put(new Person("王五", 64),"No.4");
for(Map.Entry<Person, String> temp : map.entrySet())
System.out.println(temp.getKey()+" "+temp.getValue());
}
}
---------------------- android培训、java培训、期待与您交流! ----------------------
详细请查看:http://edu.csdn.net/heima
- 黑马程序员_Java集合-Map<K,V>接口
- 黑马程序员_java入门_集合Map
- 黑马程序员_Java之Map集合
- 黑马程序员_15MAP集合<K,V>
- 黑马程序员_Java集合-Collection<T>接口
- 接口 Map<K,V>
- 黑马程序员_java集合
- 黑马程序员_java集合
- 黑马程序员_Java集合
- 黑马程序员_java集合
- 黑马程序员_java 集合
- 黑马程序员_JAVA:集合
- 黑马程序员_Java基础_集合(Map类)
- 黑马程序员_java编程基础17 集合框架Map
- 黑马程序员_java集合(1) Collection & List & Set & Map
- 黑马程序员_java集合框架——Map
- 黑马程序员_JAVA笔记16——集合(Map)
- 黑马程序员_Java基础_集合框架成员Map
- 着色语言(Shader Language) 以及HLSL VS GLSL VS CG
- GridView单击行 选择checkbox
- postgresql加密函数的安装和使用
- JOJ1600:Big Mod
- FPGA的JTAG口的保护问题?
- 黑马程序员_Java集合-Map<K,V>接口
- 使用FlashPlayer11.2测试右键需要注意的问题
- JavaScript系统学习之二 <事件,对象>
- 溢出与进位
- Selenium简介(三)--基于RC的简单应用
- 黑马程序员_Java集合-Collection<T>接口
- BTE 查找
- windows xp下centos 6.0安装
- Hashtable的遍历(DictionaryEntry)