list和set是接口吗,collection接口是list接口和set接口的父接口
本质上,List和Set都是接口,它们继承了Collection接口。我们经常使用的ArrayList和HashSet分别继承了List和Set的接口。因为我们使用泛型,所以我们可以指定实际应用中使用的实际类型。我们通常用它们来存储对象。当然,地图应用广泛。它们都提供了插入、删除和搜索的接口,并支持使用迭代器。那么,List和Set有什么区别,在使用中应该如何区分?
列表和集合之间的差异
(List和Set的一个重要区别是是否允许重复元素。允许在列表中插入重复的元素,但不允许在集合中插入,即使插入了相同的元素,它们也会被替换。我已经验证了ArrayList和HashSet分别插入了相同的元素:
hashset string hset=new hashset string();
ArrayList string arrlst=new ArrayList string();
hset . add( hello );
hset . add( hello );
arrlst . add( hello );
arrlst . add( hello );
system . out . println( hset size: hset . size() toString: hset . toString());
system . out . println( arrlst size: arrlst . size() toString: arrlst . toString());运行结果:
如何解决写爬虫IP受阻的问题?立即使用。
PS:查看JDK源代码,你会看到HashSet的实现是通过HashMap完成的。
学习视频推荐:java入门
(2)2)List和Set的另一个重要区别与元素的存储顺序有关。列表是有序集合,而集合是无序集合。该列表保留了元素的插入顺序,即前面插入的元素的索引小于后面插入的元素的索引。Set不保留插入顺序。让我们再次验证一下:
hashset string hset=new hashset string();
ArrayList string arrlst=new ArrayList string();
hset . add( 1 );
hset . add( 3 );
hset . add( 2 );
arrlst . add( 1 );
arrlst . add( 3 );
arrlst . add( 2 );
system . out . println( hset size: hset . size() toString: hset . toString());
system . out . println( arrlst size: arrlst . size() toString: arrlst . toString());运行结果:
Ps: ArrayList使用一个对象数组来存储对象,每次插入一个新的对象都会插入到大小;至于HashSet,如前所述,是通过HashMap实现的。存储的对象作为HashMap的键,如果键相同,就替换值。当然,SortedSet(继承了Set接口)可以以指定的排序方式保存元素。
(3)List可以用下标访问,Set不能。
List接口常见的实现类有ArrayList、Vector、LinkedList,Set接口常见的实现类有HashSet、TreeSet、LinkedHashSet。
更多java相关文章推荐:java入门教程以上是Java集合中set和list接口区别的详细内容。请多关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。