Java高级之集合框架

数组与集合的比较

数组不是面向对象的,存在明显的缺陷,集合弥补了数组的缺点,比数组更加灵活,并且不同的集合框架可适用的场景不同

1.数组能放基本数据类型和对象,而集合存放的都是对象的引用,而非对象本身

2.数组更容易固定无法动态改变,集合容量方便

3.数组无法判断其中实际有多少个元素,length只能告诉我们数组的容量,而集合的size()可以确切知道元素的个数

4.集合有多种实现方式和不同的场合,不像数组,仅采用顺序表达式

5.集合以类的形式存在,具有封装.继承.多态等类的特性,通过简单的方法和属性就可实现各种复杂的操作,大大提高了软件开发效率

在这里插入图片描述


HashSet:

1.无序:添加元素的顺序与内存中储存的顺序不一致

2.无重复:使用equals()方法判断两者之间的值是否相等

3.可以为null

4.存储结构:散列储存,使用哈希技术

5.因为无序,所以不能使用for循环,也就不能通过index下标获取指定的值

TreeSet:

1.无序:添加元素的顺序与内存中储存的顺序不一致,但是会自然排序

2.无重复:使用equals()方法判断两者之间的值是否相等

3.不可以为null

4.存储结构:二叉树(红黑树)

5.因为无序,所以不能使用for循环,也就不能通过index下标获取指定的值

ArrayList:

1.有序:添加元素的顺序和内存中存储的顺序一致

2.可重复

3.可以为空

4.储存结构:线性顺序存储,查询效率较高

LinkedList:

1.有序:添加元素的顺序和内存中存储的顺序一致

2.可重复

3.可以为空

4.存储结构:链表存储,查询效率较低,但是新增和删除的效率较高

LinkedList中的方法效率 > ArrayList中的方法效率,对于头部和尾部元素的操作

HashMap:

1.无序:添加元素的顺序与内存中储存的顺序不一致

2.一般Key不可重复,value可重复,如果key重复,value会被覆盖

3.允许null为key,允许null为value

4.储存结构:散列储存,使用的哈希技术


怎么选择集合

set内存放的元素不允许重复,list存放的元素有一定的顺序

map的应用主要在利用键、值队进行快速查询

ArrayList和LinkedList的区别在于随机查询性能上ArrayList要好,但LinkedList的中间元素的插入与删除性能好

HashSet和TreeSet的区别在于集合内元素是否排序

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值