数据结构,Map和Set的模型

简介: 本文讲解:Map和Set的模型

 1. 啥是Map和Set?

Map和Set是一种专门用来搜索的一个容器或数据结构,它的用途就是为了跟快捷、有效的增删改查数据。

在之前的学习中,大家查找数据并对数据进行增删改查基本上使用的都是for循序这种直接遍历的方式,其时间复杂度为O(N),元素如果比较多效率会非常慢,这样的查找是静态的查找。而Map和Set是实现动态查找的一个集合结构。那Map和Set长什么样子呢?它的底层是说明呢?下面我就来讲解。

image.gif编辑


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集合
    }
}

image.gif

输出:

image.gif编辑


(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集合
    }
}

image.gif

输出:

image.gif编辑

相关文章
|
11天前
|
存储 JavaScript 索引
js开发:请解释什么是ES6的Map和Set,以及它们与普通对象和数组的区别。
ES6引入了Map和Set数据结构。Map的键可以是任意类型且有序,与对象的字符串或符号键不同;Set存储唯一值,无重复。两者皆可迭代,支持for...of循环。Map有get、set、has、delete等方法,Set有add、delete、has方法。示例展示了Map和Set的基本操作。
19 3
|
28天前
|
存储 数据格式
Set和Map的应用场景
Set和Map的应用场景
|
2月前
|
存储 自然语言处理 C++
map和set的简单介绍
map和set的简单介绍
22 1
|
2月前
|
存储 NoSQL 算法
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)(二)
【Redis技术进阶之路】「底层源码解析」揭秘高效存储模型与数据结构底层实现(字典)
52 0
|
4天前
|
存储 前端开发 索引
【Web 前端】ES6中,Set和Map的区别 ?
【5月更文挑战第1天】【Web 前端】ES6中,Set和Map的区别 ?
|
12天前
|
存储 搜索推荐 C++
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
【C++高阶(二)】熟悉STL中的map和set --了解KV模型和pair结构
|
23天前
|
存储 C++ 容器
【C++初阶】STL详解(十)set、map、multiset、multimap的介绍及使用
【C++初阶】STL详解(十)set、map、multiset、multimap的介绍及使用
28 0
|
1月前
|
存储 JavaScript 前端开发
set和map的区别
set和map的区别
50 4
|
2月前
|
存储 NoSQL Redis
作者推荐 |【Redis技术进阶之路】「原理系列开篇」揭秘高效存储模型与数据结构底层实现(SDS)(三)
作者推荐 |【Redis技术进阶之路】「原理系列开篇」揭秘高效存储模型与数据结构底层实现(SDS)
37 0
|
2月前
|
存储 编译器 容器
用红黑树封装实现map和set
用红黑树封装实现map和set
14 0