问题补充说明:HashMap和Hashtable的区别
ArrayList和LinkedList的大致区别如下:
1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的企倍部干千配些义市段轻数据结构。
2.对于随机访问get和set,360问答ArrayList觉得优于LinkedList,因为L总美选呀治inkedList要移动指针。
3.对于新增和删除操作add和remov本行e,LinedList比较占优势,因为ArrayList要移动数据。
LinkedList链表由一系列表项连接而成。一个表项总是包含3个部分:空铁神担批沿秋减静元素内容,前驱表和后驱表,如图所示:
在下图展示了一合南盟企个包含3个元素的Lin到kedList的各个表项间的连接关系。在JDK的实现中,无论LikedList是否为空,链表内部都有一个header表项,它既表示链表的开始,也表示链表的结尾。表项header的后驱表项便是链表中第一个元素,表项原header的前驱表项便是链表中最后一个元素。
拓展资料
ArrayList就是动态数组,用MSDN中的说法,就是Ar察ray的复杂版本,它提供了动态的增加和减少元素,实现了ICollec随间造声均正画蒸别事tion和IList接口,灵活的设置数组的大的款啊千妒异降小等好处。
List 接口的大小可变数组的实现,位于API文档的java.希判困倍议简精道util.Arr天方九巴飞必状ayList
每个ArrayLis钟县然院伤激雷手来t实例都有一个容量。该容量是指用来存储列表元素的数组的大小。它总是至少等于列表的大小。随着向Ar沙师它护主万做头rayList中不断添加元素,其容量也自动增长。并未指定增长策略的细节,因太张年价希及为这不只是添加元素会带来分摊固定时间开销那样简单。
注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证。快速失败迭代器会尽最大努力抛出ConcurrentModification武贵伤冷岩慢Exception。
参考资料:百度百科-ArrayList词条