hashmap 泛型_集合与泛型概述

本文详细介绍了HashMap与Hashtable的区别,HashMap的底层数据结构——数组加链表组成的散列表以及JDK1.8后链表转换为红黑树的优化。此外,还探讨了泛型在Java集合中的应用,包括泛型类、泛型接口和泛型方法,强调了泛型带来的可读性和安全性提升。
摘要由CSDN通过智能技术生成

a8c8b2c0526c9a1bf2bc434cd724dd6c.png

【012】

1. Vector用法和ArrayList区别

(1) Vector的特有方法有哪些?

  1. 添加元素:addElement()
  2. 删除元素:removeElement()

(2) Vector与ArrayList的区别是什么?

他们的底层数据结构相同,都是Object类型的数组

  1. Vector的add()方法是同步方法,ArrayList的add()方法是非同步方法
  2. Vector扩容每次扩容一倍,ArrayList每次扩容0.5倍
  3. Vector是在调用构造方法时,直接初始化容量为10,ArrayList是在第一次调用添加方法时初始化容量为10.
  4. Vector的版本是JDK1.0,ArrayList,JDK1.2版
  5. Vector是线程同步的,安全性高,效率低,ArrayList是线程非同步的,安全性低,效率高

2. Map接口_HashMap_Hashtable的用法详解

(1) Map接口常用的方法有哪些?

e3a00c3243b315ea07fff50774220b2c.png

(1) HashMap与Hashtable的异同是什么?

  1. 版本不同:HashMap JDK1.2 HashTable1.0
  2. HashMap继承了AbstractMap,实现了Map接口,Hashtable继承了Dictionary实现了Map接口
  3. HashMap允许null值和null键,但是null作为key只允许一个,Hashtable则是非null的键和值
  4. HashMap是线程不同步的(效率高,安全性低)Hashtable(效率低,安全性高)线程同步

1. HashMap的底层原理

(1) HashMap的底层数据结构是什么?

数组加链表组成的散列表

(2) 简述哈希表的去重原理?

  1. 计算Integer类型对象的hashCode值
  2. 根据y=k(x)函数,计算存储位置,x是hashCode值,y是存储位置
  3. 如果该位置上有元素,需要调用equals方法比较元素而内容是否相通,如果不相同,使用链表链接,如果相同则不添加
  4. JDK1.8之后,当链表的个数>=8时,就会将链表转为红黑树,目的是为了减少查询比较的次数

1. 二叉树和红黑树

(1) 简述树的概念和特征?

  1. 树是由一个集合中的元素称为树的节点,所定义的关系称为父子关系
  2. 父子关系在树的节点之间建立了一个层次结构
  3. 树的节点包含一个数据元素及若干指向其子树的若干分支
  4. 在这种层次结构中有一个节点
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值