数据结构学习

Collections

可变参数

Integer Double 默认情况下都是按照升序排列的

string 按照字母再ASCII码表中对应的数字升序进行排列

单列集合--Collection

判断元素是否包含
细节:底层是依赖equals方法进行判断是否存在的。
所以,如果集合中存储的是自定义对象,也想通过contains方法判断是否包含,那么在自定义类中,一定要重写equals方法

List

List集合的遍历方式:

ArrayList

LinkedList--双向链表

Set

二叉查找树:

每一个节点上最多有两个子节点
任意节点左子树上的值都小于当前节点
任意节点右子树上的值都大于当前节点

保持平衡是通过左旋/右旋来保持平衡

红黑树

HashSet

LinkedHashSet

TreeSet

双列集合--Map

put方法的细节:
添加/覆盖
在添加数据的时候,如果键不存在,那么直接把键值对对象添加到map集合当中,方法返回null
在添加数据的时候,如果键是存在的,那么会把原有的键值对对象覆盖,会把被覆盖的值进行返回

Map的遍历方式:

  • ①键找值map.keySet()
  • ②键值对map.entrySet()
  • ③Lambda表达式map.forEach(),底层是采用键值对的增强for循环遍历

HashMap

LinkedHashMap

  • 由键决定:有序、不重复、无索引。
  • 这里的有序指的是保证存储和取出的元素顺序一致
  • 原理:底层数据结构是依然哈希表,只是每个键值对元素又额外的多了一个双链表的机制记录存储的顺序。

TreeMap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值