day20 集合 散列表 Set Map 泛型

总结:

        List  有序可重复

                ArrayList 查询快添加删除相对慢  底层 数组

                LinkedList 添加删除快 查询慢      底层 双向链表

        Set  无序不重复

                HashSet 底层是HashMap 底层是散列表

                TreeSet  底层是TreeMap 底层是红黑树 元素有序

        Map  无序 key不能重复 value可以重复保存映射关系

                HashMap 底层是散列表

                TreeMap 底层是红黑树 元素必须有序

1 散列表(哈希表)

1.1 概述

        哈希表 

散列表Hash table,也叫哈希表),是根据(Key)而直接访问在内存存储位置的数据结构。也就是说,它通过计算一个关于键值的函数,将所需查询的数据映射到表中一个位置来访问记录,这加快了查找速度。这个映射函数称做散列函数,存放记录的数组称做散列表

1.2 底层实现

    增加方法    

        通过key获得哈希值:去掉低16位保留高16位

       节点保存 key value hash  next  

        

        

           

1.3 HashSet

        HashSet的底层就是HahsMap

        添加数据虽然调用的是HashSet的add本质上却是HashMap的put方法

使用HashSet方法添加的时候只传入key value我们不需要关心

2 Map

        Map 无序 保存的K-V 键值对是映射关系 K 不能重复但是   V可以重复 

2.1 HashMap

        

2.1.1常用方法

        

      2.1.2 遍历

          2.2 TreeMap

        

        方法跟hashmap用法一样

3 泛型

        

4  利用entry进行 value排序

        5 补充 list排序

        

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: Java集合框架中的Map是一种键值对的数据结构,可以存储一组具有唯一键和对应值的元素。使用泛型可以在编译时进行类型检查,确保集合中只能存储指定类型的元素,提高代码的可读性和安全性。 在引用中的示例代码中,List<String>定义了一个只能存储字符串类型元素的列表。在引用中的示例代码中,Collection<String>和Collection<Integer>分别定义了只能存储字符串类型和整数类型元素的集合。使用泛型通配符可以增加集合的灵活性。比如在coll.removeAll(c)方法中,传入的Collection对象的泛型可以是任意类型。另外,泛型还可以应用于Map集合,如引用中的示例代码中,Set<Map.Entry<String,String>>定义了只能存储键值对类型为String的元素的集合。 综上所述,Java集合框架中的Map泛型可以一起使用,通过泛型可以指定集合中存储的元素类型,增加代码的可读性和类型安全性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [java基础中的--------Map+泛型](https://blog.csdn.net/liutaiwu/article/details/107915445)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值