容器

概念:
在Java当中,如果有一个类专门用来存放其它类的对象,这个类就叫做容器,或者就叫做集合,集合就是将若干性质相同或相近的类对象组合在一起而形成的一个整体。可以将其分为2个概念:collection和map。

容器与数组的关系:
之所以需要容器:
1、数组的长度难以扩充
2、数组中数据的类型必须相同
容器与数组的区别与联系:
1、容器不是数组,不能通过下标的方式访问容器中的元素
2、数组的所有功能通过Arraylist容器都可以实现,只是实现的方式不同。(ArrayList其实就是采用的是数组)
3、如果非要将容器当做一个数组来使用,通过toArray方法返回的就是一个数组。

Collection函数库是在java.util 包下的一些接口和类,类是用来产生对象存放数据用的,而接口是访问数据的方式。
Collection函数库与数组的两点不同:
1.数组的容量是有限制的,而Collection库没有这样的限制,它容量可以自动的调节 。
2.Collection函数库只能用来存放对象,而数组没有这样的限制。

常用方法:
boolean add(Object obj):向容器中添加指定的元素
Iterator iterator():返回能够遍历当前集合中所有元素的迭代器
Object[] toArray():返回包含此容器中所有元素的数组。
Object get(int index):获取下标为index的那个元素
Object remove(int index):删除下标为index的那个元素
Object set(int index,Object element):将下标为index的那个元素置为element
Object add(int index,Object element):在下标为index的位置添加一个对象element
Object put(Object key,Object value) :向容器中添加指定的元素。该方法返回覆盖之前的元素对象的值,如果此前此位置为空,则返回null。
Object get(Object key):获取关键字为key的那个对象
int size() :返回容器中的元素数
List接口有set,indexOf方法,但是Set接口只有add方法,因为Set无序,没有某个元素具体位置这个概念。

set集合:
不区分元素的顺序,不允许出现重复的元素
HashSet:
**TreeSet:**特殊,是一个有序集合,元素按照升序排列,缺省是按照自然顺序进行排列。HashSet是基于Hash算法实现的,其性能通常优于TreeSet。只有需要排序功能才用TreeSet。
另:所有可以实现排序的类都应该实现Comparable接口。

List列表:
由于内部存储结构的特点,List集合中区分元素的顺序,且允许包含重复的元素。List集合中的元素都对应一个整数型的序号记载其在容器中的位置,可以根据序号存取容器中的元素—有序,可以重复

Map映射:
无序,由于内部存储结构的特点,映射中不能包含重复的键值,每个键最多只能映射一个值,否则会出现覆盖的情况(后面的value值会将前面的value值覆盖掉),Map是一种把键对象和值对象进行映射的集合,即Map容器中既要存放数据本身,也要存放关键字:相同的元素会被覆盖

另:
**toString()方法的使用:**凡是把类对象放到容器中,相应的类都应该实现Object类中的toString()方法;凡是Java中自带的数据类型,都已经重写完了toString()方法。

**Comparable接口中的compareTo()方法:**凡是需要进行比较排序的类都应该实现Comparable接口中的compareTo()方法;凡是把类对象放到以树为内部结构的容器中都应该实现Comparable接口中的compareTo()方法。

凡是把类对象放到以哈希表为内部存储结构的容器中,相应的类必须要实现equals方法和hashCode方法,这样才符合哈希表真实的逻辑功能.(对于咱们自己定义的类,如果你没有重写hashcode方法,我们可以通过hashcode方法获取该对象的内存地址)

链接:https://blog.csdn.net/a2011480169/article/details/52047600
https://www.cnblogs.com/LipeiNet/p/5888513.html
https://blog.csdn.net/zhangqunshuai/article/details/80660974#commentBox

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值