关键字文章采集器(java面试笔试经常考到两个集合框架,也比较好用!)

优采云 发布时间: 2021-08-31 06:02

  关键字文章采集器(java面试笔试经常考到两个集合框架,也比较好用!)

  关键字文章采集器可以尝试一下哦,也比较好用!java面试笔试经常考到两个集合框架,一个是arraylist,一个是linkedlist,那么这两个集合都有些什么用,

  一、arraylist和linkedlist是什么?

  1、arraylist是线程不安全的,需要容量的,因为比较难扩容,而且arraylist没有list的性能,如果线程不安全,或者你对扩容有特殊要求,你可以考虑使用linkedlist。

  2、arraylist和linkedlist有一个好处就是可以合并的,如果要合并的话,记得要把arraylist元素添加到别的集合中去。

  3、arraylist最大的问题是数据量很大的时候,集合中元素为空。即便每次都开辟一个新的容量,当数据量增大的时候,后面插入的元素会非常频繁,最后可能造成内存泄漏。

  4、arraylist的查询速度相对较慢。

  5、arraylist是object[]类型,而linkedlist是vector类型。

  二、arraylist和linkedlist的区别

  1、arraylist使用linkedlist实现,size大于0的时候,插入和删除操作效率都较高。

  2、arraylist实现的是线程不安全的,因为开始没有给arraylist设置大小,所以不同数据有不同的size,所以当arraylist的大小超过设置大小后,假如你要向arraylist中插入多个数据,会经常插入空数据,可能就是cpu占用过高导致的。一般在非uniquekey的情况下,比如,存储只有一个元素的null值,一般用arraylist比较好。

  3、arraylist是链表的,linkedlist是数组的。

  4、arraylist是存储实体(item)的,而linkedlist是存储指针的。比如arraylist存储了一个房间号,数组就是存储这个房间号到一个指定list。那么后面插入null就可以使用指定的数组地址插入,而插入nan就需要遍历指定list然后再遍历房间号,如果房间号和list一样,那么遍历数组是很麻烦的,所以建议使用链表,即linkedlist。

  5、arraylist是使用node来实现的,linkedlist有node的实现。

  三、arraylist和linkedlist如何排序?

  1、arraylist是采用什么算法排序?主要的算法就是大小相等的元素先prev,然后两两进行pop操作,大于prev的元素更新为indexof(prev),小于prev的元素更新为next(indexof(indexof(prev))),indexof(prev).length为len,所以indexof(prev).length==len也可以作为一个辅助排序的算法。

  用完prev后,重新进行并集partition(indexof(indexof(null)))操作,排序过程如下:==(indexof(indexof(null)))>>(indexof(indexof(null)))next(indexof(null))==(indexof(null))->2就是说可以根据大。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线