首页 > 试题广场 >

Java中的集合类包括ArrayList、LinkedLis

[不定项选择题]
Java中的集合类包括ArrayList、LinkedList、HashMap等类,下列关于集合类描述正确的是()
  • ArrayList和LinkedList均实现了List接口
  • ArrayList的访问速度比LinkedList快
  • 添加和删除元素时,ArrayList的表现更佳
  • HashMap实现Map接口,它允许任何类型的键和值对象,并允许将null用作键或值
ArrayList插入和现有项的删除开销很大,除非在末端
LinkedList插入和删除开销很小
ArrayList和LinkedList都是实现了List接口
HashMap可以用null值和空字符串作为K,不过只能有一个

发表于 2019-09-26 09:59:40 回复(6)
这个D选项 允许任何类型的键和值对象 基本数据类型就是不行的呀 为什么是对的
发表于 2019-07-13 10:36:33 回复(8)
这公司的题没有一个能说明白的。
发表于 2019-05-31 23:01:47 回复(0)
欢迎来到MC枫少的喊麦现场,下面由MC枫少问您解答:
A:  见名知意,ArrayList与LinkedList后面均有List,固然继承的是List接口
B:  ArrayList在查询的时候,实际上就是根据数组下标来获取值,而LinkedList是前后迭代式获取值,故ArrayList的查询速度是优于LinkedList的
C:  LinkedList想象成一个一环扣一环的锁链,添加删除的时候直接***去或者取下来即可,表现的方便,...而ArrayList除非在尾部添加删除时候比较快捷,在其他部位就太难了,需要一点一点一个一个挪动元素位置(官方点这样解释:ArrayList是一个可变长数组,插入数据时,则需要先将原始数组中的数据复制到一个新的数组,随后再将数据赋值到新数组的指定位置;删除数据时,也是将原始数组中要保留的数据复制到一个新的数组)
D: 主键不能为null,否则会变为空指针,报错
发表于 2020-04-09 10:23:27 回复(7)
B选项
ArrayList底层是一个数组结构,而LinkedList底层是一个链表

链表
特点:查询慢,增删快
原因:链表中地址不是连续的,每次查询必须从头开始

数组
特点:查询快,增删慢
原因:查询快:数组地址是连续的,我们通过数组首地址就可以找到数组,通过数组的索引可以快速查找下一个元素;数组长度固定,每次增/删元素都必须创建一个新数组。

发表于 2020-07-27 19:51:02 回复(0)
做题的时候没有选B选项,因为我觉得题目中说的不清楚
对于随机访问,那肯定是  ---   ArrayList的访问速度比LinkedList快
但是对于顺序访问呢?ArrayList不必LinkedList快
发表于 2020-08-04 10:48:32 回复(2)
我感觉D项有问题,八大基本数据类型就不行,就算考虑装箱,那也就不是基本数据类型了呀
发表于 2020-11-20 14:18:36 回复(1)
B选项没有说清楚吧,ArrayList是随机访问速度比LinkedList快,顺序访问速度是不比LinkedList快的
发表于 2020-11-17 09:07:06 回复(0)

两端操作数据LikedList 会更快呦 所以你这B是说法Bug...


发表于 2020-03-09 21:25:33 回复(1)
选项b描述不严密
发表于 2020-11-13 19:36:02 回复(0)
    ArrayList 底层是基于动态数组,根据下表随机访问数组元素的效率高,向数组尾部添加元素的效率高;但是,删除数组中的数据以及向数组中间添加数据效率低。
    linkedList 增加和删除效率高  因为底层是用双向链表实现的。

发表于 2019-10-30 14:16:49 回复(0)
ArrayList底层维护了一个可变数组,LinkedList底层维护了一个双向链表
增删效率: LinkedList > ArrayList
查改效率:    LinkedList < ArrayList

HashMap的K可以为null,只能存在一个
发表于 2022-02-20 13:02:25 回复(0)
ArrayList插入和现有项的删除开销很大,除非在末端 LinkedList插入和删除开销很小 ArrayList和LinkedList都是实现了List接口 HashMap可以用null值和空字符串作为K,不过只能有一个
发表于 2021-11-03 20:44:23 回复(0)
ArrayList 底层数据结构是数组;
LinkedList 底层数据结构是双向链表;
发表于 2020-08-19 22:11:24 回复(0)
没说是如何访问啊,是顺序访问还是随机访问
发表于 2020-09-06 09:42:05 回复(0)
漏选了一个B,分析下B选项,ArrayList相当于变长数组内存地址连续,LinkedList是基于链表的动态数组,地址不连续。
遍历:ArrayList更快,连续内存地址访问
增删:LinkedList更快(在非头尾增删的的情况下),在中间增删LinkedList只需要改变前后指针指向即可,ArrayList需要移动大量下标,存的值都会按内存地址下移。
以上仅代表我个人理解,有什么不对的请大神指正。
发表于 2019-11-05 15:51:28 回复(0)
对于基本类型是不支持的,称所有是不对的啊!即便是支持Null作为键,也只能存在一个不是么
发表于 2019-09-10 22:35:26 回复(4)
这个题不严谨,如果是第一个访问,速度差不多吧
编辑于 2024-04-01 11:06:12 回复(0)
hashmap和hashtable老是记混。map就是初始的一堆散乱地图,毫无章法,但是直观;table就是整理了一下,有条理,但是查找起来比较麻烦。那就是联想一下map就是性能好,不拘小节可以使用null允许空键(null)和空值的存在,但是线程不安全。table就是线程安全,但是管的比较严,不允许使用null,性能也比较低。
发表于 2023-07-29 21:01:46 回复(0)
  • ArrayList的访问速度比LinkedList快:是因为ArrayList没有考虑线程安全,效率高,
    而LinkedList考虑了线程安全,所以效率低。
    
发表于 2023-04-10 19:34:18 回复(1)