Map

Map

概述:提供了集合间的映射关系,将键映射到值的对象
1、【Set keySet()】键类似于Set集合,无序,唯一
2、【Collection values()】值类似于List集合,有序,可重复,但是值跟着键走,被迫无序,故类似于Collection集合,部分有序、部分重合
3、键和值有一一对应关系

Map常用方法
增加

V put(K key, V value)将key|value存入Map,如果已包含key则替换
void putAll(Map<? extends K,? extends V> m)将一个Map集合中的内容加入到另一个Map

删除

V remove(Object key)根据key删除value
void clear()清空Map集合

修改(由于一个映射不包含重复的键,故再次添加时即修改)

V put(K key, V value)
void putAll(Map<? extends K,? extends V> m)

遍历

Set keySet()返回所有的key
V get(Object key)返回key对应的value,如不存在返回null
Collection values()返回所有的value
Set<Map.Entry<K,V>> entrySet()将Map对象变成Set集合,包含每一个键值对

判断

boolean containsKey(Object key)指定key是否存在
boolean containsValue(Object value)指定value是否存在
boolean isEmpty()集合是否为空

其他

int size()取出集合长度

两种遍历方式:
①根据Key查找Value
获取所有Key的集合,遍历Key的集合,获取到每一个Key,根据Key查找Value

Set<String> keys = map.keySet();
for (String key : keys) {
	String value = map.get(key);
	System.out.println(key + "|" + value);
}

②根据键值对对象找键和值
获取所有键值对对象的集合,遍历键值对对象的集合,获取到每一个键值对对象,根据键值对对象找键和值

Set<Entry<String, String>> entrys = map.entrySet();
for (Entry<String, String> entry : entrys) {
		String key = entry.getKey();
		String value = entry.getValue();
		System.out.println(key + "|" + value);
	}

Map类的相关数据结构只和键有关,和值无关
HashMap(底层数据结构是哈希表,依赖hashCode()和equals())
(当键是自定义类时,该类要实现hashCode()和equals()这两个方法)
可以存空值
TreeMap(底层数据结构是二叉树)
一般排序用TreeMap(当键是自定义类时,要实现 Comparator 接口)

TreeMap<Student, String> tm = new TreeMap<Student, String>(new Comparator<Student>() {

			@Override
			public int compare(Student s1, Student s2) {
				// 先按照年龄排序
				int num = s1.getAge() - s2.getAge();
				// 年龄相同按照姓名排序
				int num2 = (num == 0) ? s1.getName().compareTo(s2.getName()) : num;
				return num2;
			}
		});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值