Java之集合

1、什么是集合

        说到集合很容易想到数学概念上的集合,与之还是有些差别的,相同的是他们都是容器。在程序开发过程当中我们经常会需要一组数据(或类型相同的对象),那么如何承载这些对象呢?首先想到的是数组,可是数组是定长的而我们的对象数量是不确定的,这就需要不固定可扩容的容器来承载这些对象,集合应运而生了。

2、集合的特点:

(1)集合只能存放对象,基本数据类型如:int,long 或默认转换成封装类型 Integer,Long

(2) 集合实际上存储的不是对象本身,而是对象的引用,对象依然存放在堆里面

(3)集合可以存放不同类型,不限数量的数据类型

3、集合与数组的区别与联系

区别

数组本质上是一块连续的内存空间,一旦创建大小固定

数组只能存放相同类型的数据,但是Object[]数组可以存储不同类型的元素

数组.length 并不表示数组的中元素的个数,紧紧表示数组的长度,可以容纳多少个元素

集合是可以变长的,可以容纳不同类型的数据

联系

ArrayList,Vector集合底层的实现通过数组来实现的,集合默认会初始化一个定长数组,当集合的容量将要超过数组的负载时会按照一定比例扩充数组,本质上时创建一个新的大数组,将小数组的元素拷贝到大数组中去,这样反复重复。由此我们可以想象到如果数据量过大的话会不断的重复创建数组和copy数据,这样是很消耗性能,所以在创建之前如果已知数据的大小最好直接设置好集合的长度,这也是一个小小的优化。

4、集合的分类

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值