Java(容器)

Collect 无序,可重复,可以有多个null
List接口 有序(添加顺序),可重复,可以有多个null
ArrayList类 有序(),可重复,可以有多个null。底层使用的数据结构是数组
LinkedList类 有序(),可重复,可以有多个null。底层使用的数据结构是双向链表
Set接口 无序,不可重复,可以有一个null
HashSet类 元素无序,不可重复,可以有一个null。底层使用哈希表实现。(即:数组+n个链表)
LinkedHashSet 元素有序(添加和遍历的顺序一致),不可重复,可以有一个null
TreeSet类 元素有序(升序java.lang.Comparable,java.util.Comparator),不可重复,可以有一个null
Map
HashMap类 底层使用哈希表数据结构。元素是Node or Entry,一个元素包含了final int hash,final K key, V value,Node<K,V>next;被封装成一个Node。将Node放到哈希表中。根据Node中的key的哈希值hashCode()来决定存放位置。Key应该的类型需要重写hashCode()方法。还要重写equals方法。
要找Node中的value,要先获得key,通过key获得哈希码,通过哈希码就可以获得整个Node在整个表中的位置(如果位置没有元素,那么就返回null),然后根据equals比较和该链中的那个key值相等,找到相等的就找到了Node。Value就在Node中。

TreeMap
底层使用红黑树-平衡二叉树。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值