这里有我之前上课总结的一些知识点以及代码大部分是老师讲的笔记 个人认为是非常好的,,也是比较经典的内容,真诚的希望这些对于那些想学习的人有所帮助!

由于代码是分模块的上传非常的不便。也比较多,讲的也是比较清晰的!如果你有需要可以在评论中留下您的邮箱我看到一定会免费发给你的!感谢这个平台让我们大家共同进步吧!! 记住 程序员是无私的!!!

也非常欢迎到我的博客内观看 博客地址:http://www.cnblogs.com/duscl/

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

java基础(十六)集合(三)的更多相关文章

  1. java基础(十六)----- equals()与hashCode()方法详解 —— 面试必问

    本文将详解 equals()与hashCode()方法 概述 java.lang.Object类中有两个非常重要的方法: public boolean equals(Object obj) publi ...

  2. Java实习生常规技术面试题每日十题Java基础(六)

    目录 1.在Java语言,怎么理解goto. 2.请描述一下Java 5有哪些新特性? 3.Java 6新特性有哪些. 4.Java 7 新特性有哪些. 5.Java 8 新特性有哪些. 6.描述Ja ...

  3. Bootstrap<基础十六> 导航元素

    Bootstrap 提供的用于定义导航元素的一些选项.它们使用相同的标记和基类 .nav.Bootstrap 也提供了一个用于共享标记和状态的帮助器类.改变修饰的 class,可以在不同的样式间进行切 ...

  4. Java基础十二--多态是成员的特点

    Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println( ...

  5. Java基础十--接口

    Java基础十--接口 一.接口的定义和实例 /* abstract class AbsDemo { abstract void show1(); abstract void show2(); } 8 ...

  6. “全栈2019”Java第九十六章:抽象局部内部类详解

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

  7. “全栈2019”Java第二十六章:流程控制语句中循环语句do-while

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

  8. “全栈2019”Java第十六章:下划线在数字中的意义

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

  9. Java基础---泛型、集合框架工具类:collections和Arrays

    第一讲     泛型(Generic) 一.概述 1.JDK1.5版本以后出现的新特性.用于解决安全问题,是一个类型安全机制. 2.JDK1.5的集合类希望在定义集合时,明确表明你要向集合中装入那种类 ...

  10. Java 基础 -- 泛型、集合、IO、反射

    package com.java.map.test; import java.util.ArrayList; import java.util.Collection; import java.util ...

随机推荐

  1. itoa 和_itoa_s

    1> itoa, 将整数转换为字符串. char *  itoa ( int value, char * buffer, int radix ); 它包含三个参数: value, 是要转换的数字 ...

  2. JPA的泛型DAO设计及使用

    使用如Hibernate或者JPA作为持久化的解决方案时,设计一个泛型的DAO抽象父类可以方便各个实体的通用CRUD操作.由于此时大部分实体DAO的CRUD操作基本一样,采用泛型设计解决这个问题,带来 ...

  3. js实现幻灯片播放图片示例代码

    幻灯片播放图片的效果想必大家都有见到过吧,下面有个不错的示例,感兴趣的朋友可以参考下 复制代码代码如下: <select id="img_date" style=" ...

  4. Core Animation

    position和anchorPoint的区别  -整理自苹果官方文档- Layers使用两种坐标系: 1. point-based  :1)当需要定义layer在屏幕中或是距另一个layer的位置时 ...

  5. 警惕arm-linux-gcc编译器优化选项

    arm-linux-gcc的优化选项例如(-O2),可以加速我们的程序,使程序执行效率更高.但是,倘若我们就是需要程序慢一点运行,但是优化却把我们的延时函数优化的没有了的时候,这种优化却不是我们想要的 ...

  6. linux vi 使用

    vi 有一般模式和编辑模式 如vi test.txt 是首先进入的一般模式,一般模式下只能进行复制.删除.粘贴文件数据, 在一般模式下按i .I.a.A.o.O 都能进入编辑模式,按下不同的键进入编辑 ...

  7. 学习TextKit框架(上)

    TextKit简介 在iOS7之前我们要实现图文混排要使用CoreText,iOS6时有了Attribute string 可以解决一些简单的富文本需求.直到iOS7 苹果推出了TextKit,Tex ...

  8. 数据结构练习 02-线性结构3. Pop Sequence (25)

    Given a stack which can keep M numbers at most. Push N numbers in the order of 1, 2, 3, ..., N and p ...

  9. [转]如何根据cpu的processor数来确定程序的并发线程数量

    原文:http://blog.csdn.net/kirayuan/article/details/6321967 我们可以在cat 里面发现processor数量,这里的processor可以理解为逻 ...

  10. [OI笔记] 最长上升子序列与网络流建模

    与最长上升子序列相关的网络流问题: 给定一个序列 A[1..n] ,求出 A 的最长上升子序列长度.并且回答下列询问: (1) 如果每个点只能用一次,能从 A 中取出几个最长上升子序列? (2) 如果 ...