Java基础 集合框架

集合框架
1 概述
集合是用来存储对象的容器
2 特点
1)集合用来存储对象
2)集合的大小是可变的
3 集合与数组区别
1)数组的大小是不可变的,集合的大小是可变的
2)数组可以存储任意类型的数据,而集合只能存储对象(引用数据类型)
4 体系结构(可使用图形解释)

4.1单列集合
集合中只存储值,Conllection类是所有单列集合的顶层父类

4.2双列集合
集合中存储键和值,根据键映射到值,Map是所有双列集合的顶层父类

Collection总结
Collection:集合体系的顶层接口。
Collection集合(接口):
|----List集合(接口):存取元素有序、可以存储重复元素、可以存储null、有角标,可以精确控制集合中的每一个元素。
|-----ArrayList集合(类):
1)实现了List接口;
2)底层使用可变数组;
3)方法都是围绕着角标操作的;
4)查询遍历效率比较高,增删的效率比较低;
5)属于线程不安全的集合类;

    |-----LinkedList集合(类):

1)实现了List接口;
2)底层使用链表结构;
3)方法都是围绕着头和尾来设计的;
4)查询遍历效率比较低,增删的效率比较高;
5)属于线程不安全的集合类;
|-----Vector集合(类):底层可变数组,什么都慢,但线程安全,已经被ArrayList集合取代

|----Set集合(接口):存取元素无序(LinkedHashSet除外,因为底层有链表,存取有序)、不能存储重复元素、只能存储一个null、没有角标,只能通过迭代器遍历获取元素。该集合中的方法全部来自于Collection集合中。
|-----HashSet集合(类):
1)实现Set接口;
2)底层使用哈希表结构,保证对象唯一依赖于对象的hashCode 和 equals方法;
说明:使用对象的内容先调用hashCode ()函数生成哈希码值,然后结合数组长度计算数组下标,如果生成的下标对应的空间中
已经有数据,这时需要使用对象调用equals()函数来判断两个对象的内容是否相同,如果不相同,就会在当前空间在画出一个
空间来保存当前的对象。如果相同,直接舍去。
3)查询元素和添加不重复元素的效率比较快;
|-----LinkedHashSet集合(类):
1)HashSet集合类的子类,存取元素有序,元素唯一,没有自己的特有方法;
2)底层使用链表+哈希表结构;
补充:哈希表用来保存数据,保证数据唯一,不重复。链表用来记录数据的添加顺序,保证数据存取有序。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值