Map
Map : 无序的,去重的
键值对数据的集合
键值对->映射关系
价值对: K-V
K键 : 无序的,去重的|唯一的 ---> Set
V值 : 无序的,可重复 ---> Collection
K-V可以为任意引用数据类型
特点:
一个key只能对应一个Value
key相同value覆盖
遍历方式:
1.values 获取所有键值对的值
Collection<V> values() 返回此映射中包含的值的Collection视图。
2.keySet 获取所有键值对的key,根据key获取value
Set<K> keySet() 返回此映射中包含的键的Set视图。
3.entrySet 获取所有的键值对,每一个键值对都是一个Entry类型->表示一个键值对
Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射的Set视图。
TreeMap
import java.util.*;
/*
TreeMap :
底层: 红黑树
存储键值对类型的数据,自动升序排序,去重的
去重,排序: 根据键值对的key实现,与value本身无关
TreeSet底层是由TreeMap
请注意,此实现不同步。
测试: 使用TreeMap存储键值对数据,key要求为javabean类型教师数据,value存储教授学科,测试存储练习
是否可以根据key实现去重
测试是否为升序排序,要求根据教师编号做升序排序
去重|排序: 根据key的类型的比较规则
key的数据类型实现内部比较器
传递外部比较规则
*/
public class Class002_TreeMap {
public static void main(String[] args) {
//TreeMap<Teacher,String> map = new TreeMap<>(); 根据key的数据类型Teacher默认比较规则
TreeMap<Teacher,String> map = new TreeMap<>((o1,o2) ->o2.getNo()-o1.getNo()); //根据参数的比较规则对Key的Teacher做比较
map.put(new Teacher(101,"老薛","JAVA"),"JAVA");
map.put(new Teacher(103,"宝玉","JAVA"),"JAVA");
map.put