java里的List和Set

本文深入解析Java集合框架中的ArrayList、LinkedList、HashSet和TreeSet的区别和适用场景,从数据结构的角度阐述了它们在性能、灵活性和应用场景上的差异,帮助开发者在实际开发中做出更优的选择。
摘要由CSDN通过智能技术生成

1.关于List(是一个接口,支持泛型,里面的元素可以重复,不能new)。

(1)ArrayList其实就相当于一个数组,不过可以动态增加长度。遍历时比LinkList的性能好,访问速度快,但只能是一种对象类型。

(2)LinkedList则是创建一个链表数据结构来存储信息,数据的添加删除比ArrayList更加灵活,因为当添加或者删除的元素位于list的中间时,LinkedList就像C语言的链表一样处理起来只需修改指针所指向的下一个元素,而ArrayList由于是数组,地址单元是连续的,增加或者删除位于中间位置的元素时需要对list的值进行搬迁移动,所以性能下降。

 

2.关于Set(是一个接口,支持泛型,里面的元素不可以重复,不能new,SortedSet也是一个接口)

(1)HashSet实现了Set接口,里面的元素时无序的,不保证恒久不变的顺序,可以插入null值。

(2)TreeSet实现了SortedSet,是有序的。

(3)LinkedHashSet既有HashSet的属性元素又有顺序,但元素的顺序是按照插入的时间进行排序的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值