Day17总结
- 1:登录注册案例(理解)
- 2:Set集合(理解)
- (1)Set集合的特点
- 无序,唯一
- (2)HashSet集合(掌握)
- A:底层数据结构是哈希表(是一个元素为链表的数组)
- B:哈希表底层依赖两个方法:hashCode()和equals()
- 执行顺序:
- 首先比较哈希值是否相同
- 相同:继续执行equals()方法
- 返回true:元素重复了,不添加
- 返回false:直接把元素添加到集合
- 不同:就直接把元素添加到集合
- C:如何保证元素唯一性的呢?
- 由hashCode()和equals()保证的
- D:开发的时候,代码非常的简单,自动生成即可。
- E:HashSet存储字符串并遍历
- F:HashSet存储自定义对象并遍历(对象的成员变量值相同即为同一个元素)
- (3)TreeSet集合
- A:底层数据结构是红黑树(是一个自平衡的二叉树)
- B:保证元素的排序方式
- a:自然排序(元素具备比较性)
- 让元素所属的类实现Comparable接口
- b:比较器排序(集合具备比较性)
- 让集合构造方法接收Comparator的实现类对象
- C:把我们讲过的代码看一遍即可
- (4)案例:
- A:获取无重复的随机数
- B:键盘录入学生按照总分从高到底输出
- 3:Collection集合总结(掌握)
- Collection
- |--List 有序,可重复
- |--ArrayList
- 底层数据结构是数组,查询快,增删慢。
- 线程不安全,效率高
- |--Vector
- 底层数据结构是数组,查询快,增删慢。
- 线程安全,效率低
- |--LinkedList
- 底层数据结构是链表,查询慢,增删快。
- 线程不安全,效率高
- |--Set 无序,唯一
- |--HashSet
- 底层数据结构是哈希表。
- 如何保证元素唯一性的呢?
- 依赖两个方法:hashCode()和equals()
- 开发中自动生成这两个方法即可
- |--LinkedHashSet
- 底层数据结构是链表和哈希表
- 由链表保证元素有序
- 由哈希表保证元素唯一
- |--TreeSet
- 底层数据结构是红黑树。
- 如何保证元素排序的呢?
- 自然排序
- 比较器排序
- 如何保证元素唯一性的呢?
- 根据比较的返回值是否是0来决定
- 4:针对Collection集合我们到底使用谁呢?(掌握)
- 唯一吗?
- 是:Set
- 排序吗?
- 是:TreeSet
- 否:HashSet
- 如果你知道是Set,但是不知道是哪个Set,就用HashSet。
- 否:List
- 要安全吗?
- 是:Vector
- 否:ArrayList或者LinkedList
- 查询多:ArrayList
- 增删多:LinkedList
- 如果你知道是List,但是不知道是哪个List,就用ArrayList。
- 如果你知道是Collection集合,但是不知道使用谁,就用ArrayList。
- 如果你知道用集合,就用ArrayList。
- 5:在集合中常见的数据结构(掌握)
- ArrayXxx:底层数据结构是数组,查询快,增删慢
- LinkedXxx:底层数据结构是链表,查询慢,增删快
- HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
- TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序
Day17总结的更多相关文章
- python_way day17 html-day3 前端插件(fontawsome,easyui,bootstrap,jqueryui,bxslider,jquerylazyload),web框架
python_way day17 一.模板插件 图标的插件 fontawsome: 后台管理: easyui jqueryui 很多网站都会用: bootstrap :引入jQuery:(2.x,1. ...
- python_way day17 jQuery表单验证,事件绑定,插件,文本框架,正则表达式
python_way day17 1.jQuery表单验证 dom事件绑定 jquery事件绑定 $.each return值的判断 jquery扩展方法 2.前段插件 3.jDango文本框架 4. ...
- Spark Streaming揭秘 Day17 资源动态分配
Spark Streaming揭秘 Day17 资源动态分配 今天,让我们研究一下一个在Spark中非常重要的特性:资源动态分配. 为什么要动态分配?于Spark不断运行,对资源也有不小的消耗,在默认 ...
- Python之路,Day17 - 分分钟做个BBS论坛
Python之路,Day17 - 分分钟做个BBS论坛 本节内容: 项目:开发一个简单的BBS论坛 需求: 整体参考"抽屉新热榜" + "虎嗅网" 实现不同 ...
- Python—day17时间模块、系统模块、递推遍历、序列化
一.time'''时间戳(timestamp):time.time()延迟线程的运行:time.sleep(secs)(指定时间戳下的)当前时区时间:time.localtime([secs])(指定 ...
- 11.6 正睿停课训练 Day17
目录 2018.11.6 正睿停课训练 Day17 A chinese(思路 计数) B physics(单调队列/剪枝 DP) C chemistry(期望 DP) 考试代码 A B C 2018. ...
- day17 十七、时间模块
一.时间模块 import time print(time) # <module 'time' (built-in)> import time print('暂停开始') secs = t ...
- day16 Hbase day17
这个HBase学习了第二遍也不是太透彻PS:启动Hbase之前先启动Zookeeper.HDFS.yarn 1. hbase简介(是基于HDFS.相当于是一个缓存层) 1.1. 什么是hbase(列式 ...
- day17 正则表达式 re模块和hashlib模块
今日内容 1. re&正则表达式(*****) 注:不要将自定义文件命名为re import re re.findall(正则表达式,被匹配的字符串) 拿着正则表达式去字符串中找,返回一个列表 ...
- day17(JDBC入门&jdbcUtils工具介绍)
day17 JDBC整体思维导图 JDBC入门 导jar包:驱动! 加载驱动类:Class.forName("类名"); 给出url.username.password,其中url ...
随机推荐
- Codeforces Round #529 (Div. 3) D. Circular Dance
传送门 题意: 有 n 个孩子编号为 1~n ,绕着圣诞树 dance: 编号为 i 的孩子可以记住ai1,ai2两个小孩,ai1,ai2是 i 在顺时针方向的相邻的两个小孩,但ai1,ai2不一定是 ...
- Elastic 开发篇 javaAPI(4)
1.解决精确匹配问题,如果不加配置,搜索农大,会搜出“农”“大”这两个字的匹配,我们要的是“农大”,那么好了,加上一个条件搞定: MatchQuery.Type.PHRASE 完整代码: packag ...
- 怎么在linux下创建一个可运行脚本?
1.touch hello.sh 2.vim hello.sh键入i插入#!/bin/shecho hello world;键入:esc:wq3.chmod 700 hello.sh 4. 执行./h ...
- Luogu P2613 【模板】有理数取余
题目链接 \(Click\) \(Here\) 真心没啥东西,只要能\(Get\)到在数字输入的时候按位取模,以及除数也可以直接取模就可以了.(把每个数看做乘法原理和加法原理构造起来的即可.) #in ...
- go的net/http用法
http包提供了HTTP客户端和服务端的实现 一:http客户端的几种方法 1. func (c *Client) Get(url string) (resp *Response, err error ...
- 8.Django
##update 操作更新数据
- Feature Selection
两方面(发散,相关)~三方法(FWE) F:方皮卡互 W:RFE E:惩罚树 一.简介 我们的数据处理后,喂给算法之前,考虑到特征的实际情况,通常会从两个方面考虑来选择特征: 1)特征是否发散:如果一 ...
- jenkins笔记
java -jar jenkins.war -httpPort=9090 以9090端口启动jekins的web应用(内置jetty)
- ACdream - 1060 递推数(矩阵+循环节)
https://vjudge.net/problem/71677/origin 已知A(0) = 0 , A(1) = 1 , A(n) = 3 * A(n-1) + A(n-2) (n ≥ 2) 求 ...
- ssm+maven+pageHelper搭建maven项目实现快速分页
ssm+maven+pageHelper搭建maven项目实现快速分页 PageHelper分页使用: 插件的环境引入: 1.pom文件中引入分页插件的资源位置: <dependency> ...