day17:HashMap、LinkedHashMap、泛型、Collections、斗地主

本文深入探讨了Java集合框架中的HashMap和LinkedHashMap,对比了两者的特点和数据结构。同时,文章详细介绍了泛型的概念、使用场景、好处,并通过实例讲解了如何定义泛型类、泛型方法以及泛型接口。此外,还提到了Collections工具类在处理集合时的作用。
摘要由CSDN通过智能技术生成

一、 回顾

1.Set集合特点:无序 没有索引 唯一重复

2.遍历方式: A.使用迭代器 B.使用增强for循环

3.hashCode值

        A.hashcode值根据内存地址生成的一个十进制的整数

        B.不是根据hashcode值来判断两个对象是同一个对象 hashcode 是可以重写

        C.public int hashCode() 返回该对象的哈希码值

        D.字符串重写了hashcode方法 如果两个字符串的内容相同 hash是一样   但是字符串会  出现hash冲突的问题:内容不相同但是hashcode值一样(重地 通话)

4.数据结构红黑树:趋近于平衡二叉树 查询效率快

5.HashSet的数据结构:hash表结构 在jdk1.8之前 数组+链表 在jdk1.8之后 数组+链表+红黑树

6.HashSet 存储数据唯一的原因:使用equlas() 与hashcode方法进行验证         hashcode值一样 内容也一样 是不存

7.TreeSet 排序  

        排序规则:    

                A.数值是按照升序进行排列    

                 B.字符串是按照首字母的ascamll表来进行排列    

                C.引用数据类型 没有进行默认排列 需要执行其规则

        自定义的引用数据类型    

                A.自定义的类实现 Comparable       

                                this > 0 升序      

                                this =0 表示是相同      

                                this < 0降序  

                B.实例化解集合的时候传递比较的规则 Comparator

7.LinkedHashSet   

        A.具有可预知迭代顺序的 Set 接口  

        B.哈希表  

        C.双重链表

8.Map 

        A.概念:以键值对存储的集合 数据结构只针对与键 键是唯一

        B.常用的方法

         C.map集合两种遍历方式  

                a.获取的键 通过键来获取值

                b.将键值对封装成一个对象 调用对象的方法 getKey() getValue()

 二、作业1

step01 需求

 step02 代码

//定义数组
        String [] arrays={"王昭君","王昭君","西施","貂蝉","杨玉环"};
        //实例化集合
        LinkedHashSet link = new LinkedHashSet();
        //使用增强for循环
        for (String array : arrays) {
            link.add(array);
        }
        //使用迭代器遍历
        Iterator iterator = link.iterator();
        while (iterator.hasNext()){
            Object next = iterator.next();
            System.out.println(next);
        }
王昭君
西施
貂蝉
杨玉环

三 作业2

step01 需求

 step01 代码

 public static void main(String[] args) {
        String[] array1 = new java.lang.String[]{"黑龙江","浙江省","江西省","广东省","福建省"};
        String[] array2 = new java.lang.String[]{"哈尔滨","杭州","南昌","广州","福州"};
        Map map = new HashMap();
        for (int i = 0; i < array2.length; i++) {
            map.put(array1[i],array2[i]);
        }
        System.out.println(map);

    }
{黑龙江=哈尔滨, 福建省=福州, 浙江省=杭州, 江西省=南昌, 广东省=广州}

七、HashMap

7.1简介

1.特点:

  •         数据结构基于哈希表
  •         此类不保证映射的顺序 无序
  •         并允许使用null值和null键
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

LI JS@你猜啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值