目录
Map集合:
java.util.Map双列集合的顶层接口,用来存储具备映射关系对象的集合接口定义
特点: 主要是使用在双列集合,即:键值对类型的数据
双列集合:
以键值对的形式进行存储数据
特点:
1. 键唯一,值可以重复,如果键重复了则值就会被覆盖
2. Map集合是根据键进行取值的
实现类:
1. HashMap:键值对存取无序
2. LinkedHashMap : 键值对存储顺序一致
3.TreeMap : 可以对键进行存取,使用比较器对键进行排序
Map的常用方法:
put---添加指定的键和值
remove---删除指定的键值对,返回被删除的值
get---获取
containskey---判断是否存在此键
containsValue---判断是否存储此值
Set<k>keySet---获取Map集合中所有的键并存储到Set集合中
Set<MapEntry<k,v>> entrySet(): 获取Map集合中所有的键值对对象的集合(Set集合)
Map集合的遍历:
1.键值对方式:
获取Map集合所有的键---keySet()方法
循环遍历所有的键
根据建找值---get(K k)方法
2.键值对对象方式:
获取所有的键值对对象---entrySet()方法
循环遍历所有的键值对对象
使用键值对对象获取键和值---使用Entry接口方法
Entry(K k)接口:
Entry接口是Map接口的成员内部接口,使用的方式是Map.Entry<K,V>
Entry表示键值对对象,也就是说Enty是用来封装键值对的
Entry接口里面的常用方法:
K getKey(); 获取键值对对象封装的键
V getValue(); 获取键值对对象封装的值
HashMap/LinkedHashMap : Map集合的键是自定义类型,那么该类必须重写hashCode和equals方法保证键唯一
TreeMap集合:
可以对键进行排序
构造方法: public TreeMap(); 创建TreeMap集合对象,使用默认规则对键进行排序
默认规则排序:
要求键所属的类必须实现Comparable接口,重写compareTo方法,并在该方法中定义排序规则
指定排序:
实现Comparator接口指定对键进行排序
格式: TreeMap<键的数据类型,值的数据类型> 变量名= new TreeMap<>(new Comparator<键的数据类型>() {
//重写 升序: this.___ - 参数.___; 降序:参数.___ - this.___ };
格式: TreeMap <数据类型 , 数据类型> 变量名 = new TreeMap<>();
比较器Comparator:
指定排序:
传入比较器接口,在里面重写cpmpare方法,实现排序规则(前减后---升序,后减前---降序)
Sort排序: 升序:this._ -参数._; 降序:参数._-this._;
集合的指定排序:
TreeSet<数据类型> 集合名 = new TreeSet<>(new Comparator<数据类型>()){ //重写排序规则 };
键的指定排序:
TreeMap<键的数据类型,值的数据类型> 变量名= new TreeMap<>(new Comparator<键的数据类型>() {
//重写 升序: this.___ - 参数.___; 降序:参数.___ - this.___ };
默认规则排序:
匿名内部类
重写的类需要继承Comparable<类名>接口来完成重写定义规则{ //重写 (前 - 后)降序; (后 - 前)升序 };
集合嵌套 : 任何集合的内部都可以存储其他任何集合
键值对遍历格式
Set<键数据类型> 变量= 集合名.keySet();
for (键数据类型 键名:变量){
System.out.println(键名+":"+map.get(键名));
}