1. 啥是Map和Set?
Map和Set是一种专门用来搜索的一个容器或数据结构,它的用途就是为了跟快捷、有效的增删改查数据。
在之前的学习中,大家查找数据并对数据进行增删改查基本上使用的都是for循序这种直接遍历的方式,其时间复杂度为O(N),元素如果比较多效率会非常慢,这样的查找是静态的查找。而Map和Set是实现动态查找的一个集合结构。那Map和Set长什么样子呢?它的底层是说明呢?下面我就来讲解。
编辑
1.1 Map和Set的模型
通常我们把查找的数据称为关键字Key,关键字Key对应的值为Value。只有单独的关键字Key我们称为Key模型,Key与Value组合的模型我们称之为键值对。因此有两种解释:
(1)Key模型
Key模型的思想类似于一个快速查询,如在一个数组查找值为Key的元素。Set存储的就是Key模型。
public class Test { public static void main(String[] args) { Set<Integer> set = new HashSet<>(); set.add(1);//添加Key值为1 set.add(6);//添加Key值为6 System.out.println(set);//输出set集合 } }
输出:
编辑
(2)Key与Value模型
Key与Value类似于起绰号,如林冲对应的绰号为“豹子头”,罗翔口中的张三对应的绰号为“法外狂徒”。Map中存储的是就是Key-Value的键值对。
public class Test { public static void main(String[] args) { Map<Character,Integer> map = new HashMap<>(); map.put('A',6); map.put('G',3); System.out.println(map);//输出map集合 } }
输出:
编辑