1. 1:登录注册案例(理解)
  2.  
  3. 2:Set集合(理解)
  4. (1)Set集合的特点
  5. 无序,唯一
  6. (2)HashSet集合(掌握)
  7. A:底层数据结构是哈希表(是一个元素为链表的数组)
  8. B:哈希表底层依赖两个方法:hashCode()和equals()
  9. 执行顺序:
  10. 首先比较哈希值是否相同
  11. 相同:继续执行equals()方法
  12. 返回true:元素重复了,不添加
  13. 返回false:直接把元素添加到集合
  14. 不同:就直接把元素添加到集合
  15. C:如何保证元素唯一性的呢?
  16. hashCode()和equals()保证的
  17. D:开发的时候,代码非常的简单,自动生成即可。
  18. E:HashSet存储字符串并遍历
  19. F:HashSet存储自定义对象并遍历(对象的成员变量值相同即为同一个元素)
  20. (3)TreeSet集合
  21. A:底层数据结构是红黑树(是一个自平衡的二叉树)
  22. B:保证元素的排序方式
  23. a:自然排序(元素具备比较性)
  24. 让元素所属的类实现Comparable接口
  25. b:比较器排序(集合具备比较性)
  26. 让集合构造方法接收Comparator的实现类对象
  27. C:把我们讲过的代码看一遍即可
  28. (4)案例:
  29. A:获取无重复的随机数
  30. B:键盘录入学生按照总分从高到底输出
  31.  
  32. 3:Collection集合总结(掌握)
  33. Collection
  34. |--List 有序,可重复
  35. |--ArrayList
  36. 底层数据结构是数组,查询快,增删慢。
  37. 线程不安全,效率高
  38. |--Vector
  39. 底层数据结构是数组,查询快,增删慢。
  40. 线程安全,效率低
  41. |--LinkedList
  42. 底层数据结构是链表,查询慢,增删快。
  43. 线程不安全,效率高
  44. |--Set 无序,唯一
  45. |--HashSet
  46. 底层数据结构是哈希表。
  47. 如何保证元素唯一性的呢?
  48. 依赖两个方法:hashCode()和equals()
  49. 开发中自动生成这两个方法即可
  50. |--LinkedHashSet
  51. 底层数据结构是链表和哈希表
  52. 由链表保证元素有序
  53. 由哈希表保证元素唯一
  54. |--TreeSet
  55. 底层数据结构是红黑树。
  56. 如何保证元素排序的呢?
  57. 自然排序
  58. 比较器排序
  59. 如何保证元素唯一性的呢?
  60. 根据比较的返回值是否是0来决定
  61.  
  62. 4:针对Collection集合我们到底使用谁呢?(掌握)
  63. 唯一吗?
  64. 是:Set
  65. 排序吗?
  66. 是:TreeSet
  67. 否:HashSet
  68. 如果你知道是Set,但是不知道是哪个Set,就用HashSet
  69.  
  70. 否:List
  71. 要安全吗?
  72. 是:Vector
  73. 否:ArrayList或者LinkedList
  74. 查询多:ArrayList
  75. 增删多:LinkedList
  76. 如果你知道是List,但是不知道是哪个List,就用ArrayList
  77.  
  78. 如果你知道是Collection集合,但是不知道使用谁,就用ArrayList
  79.  
  80. 如果你知道用集合,就用ArrayList
  81.  
  82. 5:在集合中常见的数据结构(掌握)
  83. ArrayXxx:底层数据结构是数组,查询快,增删慢
  84. LinkedXxx:底层数据结构是链表,查询慢,增删快
  85. HashXxx:底层数据结构是哈希表。依赖两个方法:hashCode()和equals()
  86. TreeXxx:底层数据结构是二叉树。两种方式排序:自然排序和比较器排序

  

Java学习第十七天的更多相关文章

  1. Java学习(十七)

    Java多态的学习差不多有3个小时,老师还夹杂着一些编译器运用的知识. 这是多态的基本知识: 我们可以创建父类引用指向子类对象,这就是多态的一种.(这种也叫向下转型) Pet c=new Cat(); ...

  2. Java学习笔记十七:Java中static使用方法

    Java中static使用方法 一:Java中的static使用之静态变量: 我们都知道,我们可以基于一个类创建多个该类的对象,每个对象都拥有自己的成员,互相独立.然而在某些时候,我们更希望该类所有的 ...

  3. JAVA学习第二十七课(多线程(六))- 多生产者多消费者问题(JDK1.5新特性)

    多生产者多消费者问题 以生产馒头 消费馒头为例. class Resource { private String name; private int count = 1; private boolea ...

  4. 201871010106-丁宣元 《面向对象程序设计(java)》第十七周学习总结

    201871010106-丁宣元 <面向对象程序设计(java)>第十七周学习总结 正文开头: 项目 内容 这个作业属于哪个课程 https://home.cnblogs.com/u/nw ...

  5. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  6. IOS学习之十七:Grand Central Dispatch(GCD)编程基础

    IOS学习之十七:Grand Central Dispatch(GCD)编程基础   有过编程经验的人,基本都会接触到多线程这块. 在java中以及Android开发中,大量的后台运行,异步消息队列, ...

  7. “全栈2019”Java多线程第二十七章:Lock获取lock/释放unlock锁

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  8. 2016最新Java学习计划

    一.Java学习路线图 二.Java学习路线图--视频篇 六大阶段 学完后目标 知识点 配套免费资源(视频+笔 记+源码+模板) 密码        第一阶段 Java基础 入门 学习周期: 35天 ...

  9. “全栈2019”Java多线程第十七章:同步锁详解

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

随机推荐

  1. 全新的membership框架Asp.net Identity

    在Asp.net上,微软的membershop框架经历了Asp.net membership到Asp.net simple membership,再到现在的Asp.net Identity. 每一次改 ...

  2. vs2015+opencv3.3.1+ c++实现 静态背景下多运动目标提取,检测

    静止背景下运动物体的提取,跟踪出运动轨迹 下载地址 https://download.csdn.net/download/li_haoren/10761361 1.两遍扫描法得到第n帧的连通域,分离出 ...

  3. NSRange 范围

    前言 结构体,这个结构体用来表示事物的一个范围,通常是字符串里的字符范围或者集合里的元素范围. typedef struct _NSRange { NSUInteger location; // 表示 ...

  4. javascript点击变绿色再点击变红色

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. Markdown使用样例

    # 欢迎使用 Cmd - 在线 Markdown 编辑阅读器 ------ 我们理解您需要更便捷更高效的工具记录思想,整理笔记.知识,并将其中承载的价值传播给他人,**Cmd Markdown** 是 ...

  6. jvm学习笔记之对象详解

    一.对象的组成 对象头(Header): 运行时数据:存储对象运行时的数据,如哈希码.GC分代年龄.锁状态标志.线程持有的锁.偏向线程ID.偏向时间戳等,这部分数据官方成为“Mark Word”,它的 ...

  7. 华为敏捷DevOps实践:产品经理如何开好敏捷回顾会议

    大家好,我是华为云DevCloud项目管理服务的产品经理 恒少:) 作为布道师和产品经理,出差各地接触客户是常态,经常和华为云的客户交流.布道.技术沙龙,但是线下交流,覆盖的用户总还是少数.我希望借助 ...

  8. 洛谷 P1546 最短网络 Agri-Net(最小生成树)

    嗯... 题目链接:https://www.luogu.org/problemnew/show/P1546 首先不难看出这道题的思想是用了最小生成树,但是这道题有难点: 1.读题读不明白 2.不会读入 ...

  9. 多线程 GCD 的使用

    参考:http://www.jianshu.com/p/2d57c72016c6 GCD 的两个核心概念: 队列 与 任务 一.队列 队列分为串行队列和并发队列, 队列的作用是管理开发者提交的任务,在 ...

  10. JUC包下CountDownLatch学习笔记

    CountDownLatch的作用是能使用多个线程进来之后,且线程任务执行完毕之后,才执行, 闭锁(Latch):一种同步方法,可以延迟线程的进度直到线程到达某个终点状态.通俗的讲就是,一个闭锁相当于 ...