
java集合
一个过客a
再迷茫,也记得要忠于自己
展开
-
简单谈谈对ArrayList集合的理解
ArrayList集合底层为数组式结构,所以是有序的集合并且可以重复,可以根据下标进行取值,是非线程安全的。 ArrayList集合在调用无参构造方法实例化的时候,并没有创建数组,而是在用户第一次执行添加的时候进行创建数组,ArrayList的添加方法,先进行判断数组是否已创建,如果没创建先创建数组,然后调用扩容方法grow,将数组当前的长度+1的值一并传到grow方法中,ArrayLis...原创 2019-06-20 14:43:25 · 693 阅读 · 0 评论 -
ArrayList和LinkedList速度方面的对比
现在网上大部分都说,ArrayList查询速度快,LinkedList增删速度快。其实这种说法是错误的。ArrayList底层是数组,在每次进行添加的时候实际上是在数组后面进行追加,在调用扩容机制grow,数组复制的时候,用到的语句底层是用C语言进行书写的,所以对效率的影响可以忽略不计(C语言执行效率较高)。而LinkedList在添加的时候是在创建对象。 ArrayList在查询的时候,实际上...原创 2019-06-20 14:45:03 · 5033 阅读 · 1 评论 -
简单谈谈对HashMap集合的理解
此文适合有基础的同学阅读,不建议初学者阅读 首先基础概念: HashMap是线程不安全的集合,允许空键(key=null)空值(value=null),因为他是一个线程不安全的集合,允许多个线程同时操作,底层方法没有加synchronize线程锁,所以效率较高,底层为数组加单向链结构,jdk1.8的数组名称为node,jdk1.7之前的数组名称为entry,HashMap实现与jd...原创 2019-06-20 14:46:01 · 2205 阅读 · 2 评论