集合Collection

集合Collection

1.什么是集合
存储对象的容器,面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,存储对象,集合是存储对象最常用的一种方式。
集合的出现就是为了持有对象。集合中可以存储任意类型的对象,而且长度可变。在程序中有可能无法预先知道需要多少个对象,那么用数组来装对象的话,长度不好定义,而集合解决了这样的问题。

2.集合和数组的区别
数组和集合类都是容器
数组长度是固定的,集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象数组中存储数据类型是单一的,集合中可以存储任意类型的对象。

集合类的特点
用于存储对象,长度是可变的,可以存储不同类型的对象。

数组的缺点
存储类型单一的数据容器,操作复杂(数组一旦声明好不可变)

3.集合的分类
集合做什么
1:将对象添加到集合
2:从集合中删除对象
3: 从集合中查找一个对象
4:从集合中修改一个对象就是增删改查
注意:集合和数组中存放的都是对象的引用而非对象本身

---|Collection接口: 单列集合  
            ---|List接口: 有存储顺序, 可重复 
                ---|ArrayList类:  数组实现, 查找快, 增删慢  
                            在增和删的时候会牵扯到数组增容, 以及拷贝元素. 所以慢。数组是可以直接按索引查找, 所以查找时较快                                                   
                ---|LinkedList类: 链表实现, 增删快, 查找慢  
                                由于链表实现, 增加时只要让前一个元素记住自己就可以,   
                                          删除时让前一个元素记住后一个元素, 后一个元素记住前一个元素,
                                          这样的增删效率较高但查询时需要一个一个的遍历, 所以效率较低   
                ---|Vector类: 和ArrayList原理相同, 但线程安全, 效率略低  
                             和ArrayList实现方式相同, 但考虑了线程安全问题, 所以效率略低                                                     
            ---|Set接口: 无存储顺序, 不可重复  
                ---|HashSet 类 
                ---|TreeSet  类
                ---|LinkedHashSet  类
---| Map接口: 键值对  
        ---|HashMap 类 
        ---|TreeMap  类
        ---|HashTable  类
        ---|LinkedHashMap 类

4、ArrayList
扩容原理:将原来的数组复制到更大的数组中(大小为原来的1.5倍),然后将新数据放到扩容后数组中。
ArrayList list=new ArrayList(); 这种是默认创建大小为10的数组,每次扩容大小为1.5倍
ArrayList list=new ArrayList(30); 这种是指定数组大小的创建,创建时直接分配其大小,没有扩充

HashMap
默认容量为16
默认装载因子为0.75
"链表散列"的数据结构(数组和链表的结合体),允许null值与null链。
底层是一个数组结构,数组中的每一项又是一个链表

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值