当前位置: 首页 > news >正文

Java高级Day24-集合最后补充

75.HashTable

基本介绍:

  1. 存放元素的健值对 即K-V

  2. hashtable的键和值都不能为null,否则会抛出NullPointerException

  3. hashtable使用方法基本上和HashMap一样

  4. hashtable是线程安全的,hashmap是线程不安全

扩容机制:

  1. 底层有数组Hashtable$Entry[] 初始化大小为11

  2. 临界值threshedld 8 = 11 * 0.75

  3. 扩容:按照自己的扩容机制来即可

  4. 执行 方法addEntry(hash,key,value,index);添加K-V 封装到Entry

  5. 按照 int new Capacity = (oldCapactiy << 1) + 1;的大小来扩容

76.Properties

  1. Properties类继承自Hashtable类并实现了Map接口,也是使用一种键值对的形式来保存数据

  2. 他的使用特点和Hashtable类似

  3. Properties还可以用于从xxx.properties文件中,加载数据到Properties类对象,并进行读取和修改

77.开发中如何选择集合实现类

  1. 先判断存储的类型(一组对象或一组键值对)

  2. 一组对象:Collection接口

    允许重复:List

    增删多:LinkedList[底层维护了一个双向链表]

    改查多:ArrayList[底层维护Object类型的可变数组]

    不允许重复:Set

    无序:HashSet [底层是HashMap,维护了一个哈希表(数组+链表+红黑树)]

    排序:TreeSet

    插入和取出顺序一致:LinkedHashSet,维护数组+双向链表

  3. 一组键值对:Map

    键无序:HashMap[底层是:哈希表]

    键排序:TreeMap

    键插入和取出顺序一致:LinkedHashMap

    读取文件:Properties

78.Collections工具类

工具类介绍:

  1. Collections是一个操作Set、List和Map等集合的工具类

  2. Collections中提供了一系列静态的方法对集合元素进行排序、查询和修改和操作

排序操作:(均为static方法)

  1. reverse(List):反转List中元素的顺序

  2. shuffle(List):对List集合元素进行随机排序

  3. sort(List):根据元素的自然顺序对指定List集合元素按升序排序

  4. sort(List,Comparator):根据指定的Comparator产生的顺序对List集合元素进行排序

  5. swap(List,int,int):将指定List集合中的 i 处元素和 j 处元素进行交换

查找、替换:

  1. Object max(Collection):根据元素的自然顺序,返回给定集合中的最大元素

  2. Object max(Collection,Comparator):根据Comparator指定的顺序,返回给定集合中的最大元素

  3. Object min(Collection)

  4. Object min(Collection,Comparator):

  5. int frequency(Collection,Object):返回指定集合中指定元素的出现次数

  6. void copy(List dest,List src):将src中的内容复制到dest中

  7. boolean replaceAll(List list,Object oldVal,Object newVal):使用新值替换List对象的所有旧值

http://www.lryc.cn/news/419356.html

相关文章:

  • C++入门:C语言到C++的过渡
  • 了解MVCC
  • WPF自定义控件的应用(DynamicResource的使用方法)
  • Postgresql数据库密码忘记的解决
  • Flink SQL 基础操作
  • 海思AE模块Lines_per_500ms参数的意义
  • 【代码随想录】区间和——前缀和方法
  • Bug 解决 | 前端项目无法正确安装依赖?
  • 【mysql 第四篇章】bin log 的作用是啥呢?
  • Linux 操作系统:基于环形队列的生产者消费者模型
  • python求解二次方程
  • Spring框架面试总结
  • java之网络编程篇
  • stm32f103c8t6与TB6612FNG解耦测试
  • 2253336 - 资源库 - OAC0 中的脱机状态
  • uni-app总结
  • 【JavaEE初阶】线程安全的集合类
  • 关于Vue项目npm快捷键,点击run启动报错,及npm i也报错的解决办法
  • React中,className属性自定义组件不生效的问题
  • Ubuntu22.04搭建fabric开发环境、开发环境下运行链码
  • [BSidesCF 2019]Kookie1
  • LCM红外小目标检测
  • 振德医疗选择泛微千里聆RPA,助力电商、人事业务流程自动化
  • VBA高级应用30例应用3在Excel中的ListObject对象:创建表
  • IP 地址在 SQL 注入攻击中的作用及防范策略
  • Unity VR黑屏
  • Vue.js 中使用 Watcher 的强大场景和案例
  • 《实现 DevOps 平台(2) · GitLab CI/CD 交互》
  • 【机器学习sklearn实战】岭回归、Lasso回归和弹性网络
  • Python 爬虫项目实战六:抓取猫眼电影排行榜的数据