首页 > 试题广场 >

List和ArrayList的区别,arrayList和Ha

[问答题]
请介绍一下List和ArrayList的区别,arrayList和HashSet区别
list是接口,ArrayList实现了list接口。
首先arraylist底层是动态数组,可以存储重复的值,并且如果不约定下标的话,是有序的。
而hashset底层是hash表,由于会比较hash值和equals,所以他是不可重复并且是无序的。
简单的说一个是有序可重复,一个是无序不可重复。
发表于 2018-12-19 09:44:44 回复(4)
list是接口,arraylist是实现该接口的类。arraylist底层是动态数组。有序且可以重复。而hashset是实现了set接口,底层是hashmap不能重复且没有顺序
发表于 2019-01-15 19:27:01 回复(0)
作者:追风筝的人45
链接:https://www.nowcoder.com/questionTerminal/582f0888bee247498512118f4f419c49?orderByHotValue=1&page=1&onlyReference=false
来源:牛客网
List是接口 ArrayList类继承并实现了List接口,HashSet实现的是Set接口,set和list接口都是继承Collection接口,ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,ArrayList是有序存放,hashset是无序存放不重复,hashset和hashmap都是线程不安全的
编辑于 2018-12-20 11:31:01 回复(2)
list是一个接口,arraylist是一个实体类 arraylist是一个有序的,线程不安全的集合,增删慢,查询快 hashset底层使用hashmap实现的,hashmap是由数组+链表实现,每个部分称为桶,默认初始化16个桶,只有当实际桶数/总桶数大于扩容因子(默认0.75)时,才会进行扩容,存储时,会二次计算其hash值,根据算法来实现具体分到哪个桶上。如果该桶上已经有元素的时候,会进行移位,所以hashset也是无序的,在扩容时,也会进行hash的二次计算,也可能会打乱顺序。在其赋初值时,会自动将将其转化为向上取整的2的k次幂的数
编辑于 2019-03-19 23:42:39 回复(0)
list是接口,arraylist继承list,arraylist底层是动态数组,元素可以重复。hashset存的是hashcode,比较元素需要重写equals方法,继承set接口,元素不重复,所以总的来说,就是arraylist元素有序可重复,hashset元素无序不可重复。
发表于 2019-02-11 08:05:49 回复(0)
ArrayList是List接口的常用实现类,它可以容纳所有类型的数据对象,包括null。允许重复,并且保证元素的存储顺序。
ArrayList对数组进行了封装,实现了长度可变的数组,和数组采用相同的存储方式,在内存中分配连续的空间。它的优点在于遍历元素和随机访问元素的效率比较高。

HashSet是基于HashMap实现的,底层使用HashMap保存元素。不允许有重复的值,无序。

这里再提一下HashMap和LinkedList:
HashMap是基于Hash算法实现的,存储方式是hash表,元素键值对中的key不允许重复,value允许重复,在判断key是否重复时,使用hashcode方法计算出hash值,不重复则存入,重复则将value值改变为最新值。优点是:查询指定元素效率高;

LinkedList也是List接口的常用实现类,它与ArrayList不同之处在于,它采用链表的存储方式,优点在于插入、删除元素时效率比较高。它还提供了额外的方法如:addFirst(),addLast(),removeFirst(),removeLast()等等,使得它可被用作堆栈或者队列。
发表于 2020-03-30 14:29:43 回复(0)
list是接口,ArrayList实现了list接口。 首先arraylist底层是动态数组,可以存储重复的值,并且如果不约定下标的话,是有序的。 而hashset底层是hash表,由于会比较hash值和equals,所以他是不可重复并且是无序的。 简单的说一个是有序可重复,一个是无序不可重复。
发表于 2019-06-24 08:49:09 回复(0)
ArrayList是list的实现类,ArrayList的基础是数组,元素有序,有整数索引
发表于 2019-06-19 14:28:26 回复(0)
接口 类 数组 Hash 可重复 不可重复
编辑于 2019-05-16 11:48:03 回复(0)
1. List 是接口,ArrayList是实现类
2.arrayList 的实现是数组,HashSet是hash表;arraylist是顺序存储,HashSet 是随机存储;arraylist可以有重复的值,HashSet没有;ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,
发表于 2019-05-08 17:54:33 回复(0)
list是一个接口,arraylist是list的一个实现。基于一个动态数组。arraylist中可以存放重复数据,并且是有序的,hashset继承set接口,不可以存放重复数据并且没有顺序
发表于 2019-05-06 18:15:46 回复(0)
List:是一个有序的集合,可以包含重复的元素。它继承Collection。 List有两个重要的实现类:ArrayList和LinkedList。 ArrayList:我们可以将其看作是能够自动增长容量的数组。
编辑于 2019-04-29 19:33:11 回复(0)
List是个接口,而ArrayList是个类,它实现List接口。 List不可以被构造,ArrayList可以被构造。 ArrayList是有序的,HashSet是无序的。
发表于 2019-04-27 21:08:00 回复(0)
List是接口,ArrayList实现了List接口。ArrayList是有序可重复,HashSet是无序不可重复。
发表于 2019-04-26 23:06:16 回复(0)
List是接口,ArrayList实现了List接口。
 ArrayList实现了List接口,HashSet实现了Set接口,List和Set都是继承Collection接口。
ArrayList底层是动态数组,HashSet底层是哈希表。
ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,
ArrayList是有序可重复,HashSet是无序不可重复。
发表于 2019-04-25 23:21:23 回复(0)

List是接口 ArrayList类继承并实现了List接口,HashSet实现的是Set接口,set和list接口都是继承Collection接口,ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,ArrayList是有序存放,hashset是无序存放不重复,hashset和hashmap都是线程不安全的
发表于 2019-04-25 22:52:34 回复(0)
List是接口,ArrayList实现了List接口。
ArrayList实现了List接口,HashSet实现了Set接口,List和Set都是继承Collection接口。
ArrayList底层是动态数组,HashSet底层是哈希表。
ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,
ArrayList是有序可重复,HashSet是无序不可重复。
发表于 2019-04-25 21:04:36 回复(0)

List是接口,ArrayList实现了List接口。

ArrayList实现了List接口,HashSet实现了Set接口,List和Set都是继承Collection接口。

ArrayList底层是动态数组,HashSet底层是哈希表。

ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,

ArrayList是有序可重复,HashSet是无序不可重复

发表于 2019-04-25 19:56:23 回复(0)

1、List是接口,ArrayList实现了List接口。

2、ArrayList实现了List接口,HashSet实现了Set接口,List和Set都是继承Collection接口。

ArrayList底层是动态数组,HashSet底层是哈希表。

ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,

ArrayList是有序可重复,HashSet是无序不可重复。

发表于 2019-04-25 18:53:46 回复(0)
List是接口,ArrayList实现了List接口。ArrayList实现了List接口,HashSet实现了Set接口,List和Set都是继承Collection接口。ArrayList存放的是对象的引用,HashSet存放之前检索对象的HashCode,所以当存入对象时要重写hashCode(),如果只是比较对象,只需要重写equals()方法,
发表于 2019-04-25 18:37:14 回复(0)