知识回顾
    集合
    Collection        Map
    以value形式存储        以key-value形式存储
    List    Queue    Set
    有序可重复        无序无重复    key无序无重复value无序可重复
    *ArrayList        HashSet    HashMap
    Vector            TreeSet    TreeMap
    Stack(LIFO)
    *LinkedList

    add()            add()
    remove()         remove()
    set()
    get()            iterator()
    size()                size()

    1.集合的应用
        集合就是一个小容器    增删改查
    2.集合使用的情形
        各自集合的特点
    3.底层原理
        数据结构的存储方式
    4.自己尝试实现
=======================================================

    Collection    以value形式存在
    Set        无序无重复
    1.具体的实现类
        HashSet
        TreeSet
    2.基本的使用
    3.无序   无重复
        无序:我们使用集合存放元素的顺序  集合内取出来的顺序不一致
        集合本身是有自己的算法排布顺序  hash算法

    HashSet---->(HashMap (数组+链表) 散列表 临接连表)
        1.java.util
        2.如何创建对象   无参数  有参数
        3.集合容器的基本使用
            增删改查
            boolean = add(value)   addAll(collection c)   retainAll   removeAll
            boolean = remove(Object)
            没有修改方法
            iterator()  获取一个迭代器对象
            size()
        4.无重复的原则
            首先通过String类型和Person类型存储
            大概猜测  无重复的原则  利用equals方法进行比较
            如果我们想要让Person对象的name一致 认为是同一个对象
            我们可以重写equals方法
            重写了equals方法  发现还没有产生无重复的效果
            证明可能原则不止equals一个方法这么简单
            还有另一个规则同时起着作用 hashCode方法  int
            五个Person对象只剩一个   第一次存储的   还是最后一次存储
            set集合是发现重复的元素 拒绝存入  存储的是第一个
        
    TreeSet-----(TreeMap 二叉树 利用Node(left item right))
        无序无重复  java.util
        无参数构造方法    带Collection构造方法
        基本常用方法
            add(E e)  iterator()  remove(E e)  没有修改  size()
        无重复的规则是如何实现的
            treeSet集合本身有顺序   我们指的无序存入的和取出来的不一致
            compareTo---->String类  按照字母的自然顺序排布(Unicode)
            如果想要把自己写的类型 比如Person对象存入TreeSet集合里
            不能随意的存储    需要让自己写的类先实现Comparable接口

 

========================================================================
    Map   映射   通过某一个key可以直接定位到一个value值
    存储的方式以  键值对  存储   key-value
    key无序无重复   value无序可重复
    key无序还是一样,指的是存入顺序与取得顺序不一致
    key无重复当然指的是 元素不能一致

    1.map基本使用
        HashMap
        TreeMap
        Properties
        
    HashMap
    1.包 java.util
    2.如何创建对象
    3.基本方法
        增删改查
        增put(key,value)    存放一组映射关系   key-value
            1.key存储的顺序与取得顺序不同
            2.不同的key可以存储相同的value
            3.key若有相同的 则将 原有的value覆盖而不是拒绝存入(跟set刚好相反)
        删E = remove(key);
        改put(key,value1)    put(key,value2)
           replace(key,newValue)
        查E = get(key)
        遍历map集合?    key不一定什么样
            获取到所有的key    遍历key    通过key获取value
            Set<Key> = keySet()获取全部的key
            Set<Entry> = entrySet();
        size();
    4.除了上述几个常用的方法外  其他API中提供的方法
        clear   containsKey(key)   containsValue(value)
        getOrDefault(key,defaultValue);如果key存在就返回对应的value 若没有找到则返回默认值
        isEmpty()
        putAll(map)
        putIfAbsent(key,value);//如果key不存在才向集合内添加  如果key存在就不添加啦
    5.map集合在什么情形下用?
        1.想要存储一组元素
            数组  or  集合    如果存储的元素以后长度不变用数组  如果长度以后不确定 用集合
        2.如果发现长度以后不确定--->集合
            List  Set  Map
            List家族有序的   存储有顺序用这个
                ArrayList        更适合遍历轮询
                LinkedList    更适合插入和删除
                Stack        LIFO
            Set家族无重复    存储元素希望自动去掉重复元素用这个
                Hash    性能更高
                Tree    希望存进去的元素自动去重复  同时还能自动排序
            Map家族k-v      通过唯一的k快速找寻v用这个
                Hash    性能更高
                Tree    希望存进去的元素key自动排序
    6.登录小流程
        能体会每一个不同集合的特点
    7.HashMap底层的数据结构存储
        散列表的形式    数组+链表
        Person对象存入HashMap中?  可以
        hashCode方法---->不同的对象 可以产生相同的hashCode码的
        不同的hashCode码-->不同的对象

================================================================================================

Hash的存储结构


       JAVA学习笔记——HashSet和TreeSet和Map 

    小任务
        题目做成选择题
            1.以下哪个选项不是Java的基本类型?
               A.short   B.boolean  C.String  D.char
               请您输入认为正确的选项?
            2.以下哪个选项是Java的基本类型?
               A.Short   B.Boolean  C.String  D.char
               请您输入认为正确的选项?

        学生考试之前需要先登录认证
        设计一个学生  考试机  老师关系        
        考试机存储好多题目----题库10道
        考试机随机生成试卷的方法5道
        学生利用生成的试卷考试-->答案 5个选项 A D B C A
        老师负责批卷子   最终成绩

        类的设计 方法 属性
        类之间的关系
        String类型的常用方法
        集合的选择与使用(包含数组)

 

 

 

 

 

 

        

相关文章:

  • 2021-09-28
  • 2021-08-06
  • 2022-12-23
  • 2021-11-20
  • 2021-07-04
  • 2021-06-25
  • 2021-08-29
猜你喜欢
  • 2021-11-07
  • 2022-02-13
  • 2022-12-23
  • 2021-11-26
  • 2021-11-05
  • 2022-12-23
相关资源
相似解决方案