当前位置: 移动技术网 > IT编程>开发语言>Java > 集合框架

集合框架

2018年08月05日  | 移动技术网IT编程  | 我要评论

辛德勒的名单qvod,潸然泪下造句,格里芬暴扣视频

 List 接口

List 是一个元素有序的、可以重复、可以为 null 的序列。

ArrayList

特点:快速随机访问元素。

pk数组

  • 允许动态扩容 (默认个数:10,超过集合的容量时,扩充为原来的1.5倍,即:10*1.5=15)
  • 允许插入不同类型的数据(ArrayList会把所有插入其中的数据都当作为object类型来处理,存在装箱与拆箱的操作,会带来较大的性能损耗)

pkVector

  • Vector默认个数也为10,但它们之间的扩容方式不同,Vector默认扩容是增长一倍的容量
  • ArrayList属于线程不安全,Vector通过synchronized来保证线程安全。

笔试题

ArrayList list = new ArrayList(20);中的list扩充几次?[解析]  0

LinkedList

特点:快速插入,删除元素


 

Map

HashMap

整体结构

 Entry是HashMap的基本组成单元,每一个Entry包含一个key-value键值。代码如下

    static class Entry<K,V> implements Map.Entry<K,V> {
        final K key;
        V value;
        Entry<K,V> next; //单链表(头插法)
        int hash;
Entry(int h, K k, V v, Entry<K,V> n) { value = v; next = n; key = k; hash = h; } 

思考题

为何HashMap的数组长度一定是2的次幂?

[解析] 从使散列地址分布均匀,扩容后数据位置重新调换的次数来分析。

为什么重写equals方法需同时重写hashCode方法?

 

Set接口

Set内部实现是基于Map的,所以Set取值时不保证数据和存入的时候顺序一致,并且不允许空值,不允许重复值。

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网