Java基础——集合接口


数组需要实现设定好固定长度,而现实中往往需要数据结构的长度可变,我们就需要基于新的数据结构——集合。和集合相关的接口主要Collection接口和Map接口。

Collection接口

add()
addAll():添加一个collection对象

contains():用equals方法判断是否相等,从而判断是否包含,如果需要只判断自定义对象的内容是否相等,需要重写对象的equals方法

containsAll():用于判断是否包含collection对象
isEmpty()
clear():清除内容,但不是清除所有对象
remove():会先判断是否包含要删除的对象
equals():由于collection存储的是有序的数据,所以添加同样的对象但添加顺序不同的两个Collection对象
retainAll():将Collecton对象存储的数据变为和另一个Collection对象的交集
toArraty():转化为数组,如果没有指明类型,就是Object数组

*数组也可以转化为Collection对象,不过只能是List对象,而且最好是使用包装类,比如:List list = Arrays.asList(new Integer[]{123,456}); 如果改成List list = Arrays.asList(new int[]{123,456}); 那么会把里面的{123,456}看成一个数组,而不是两个元素。

循环:可以使用迭代器,但JDK5.0提供了增强for循环:
for(类型 变量名 :集合){
。。。
}

举例:Collection\CollectionTest.java

List接口

继承了Collection接口。
常用方法

add():可以在指定位置添加元素,添加进去后,原来的元素和后面的元素后移。
addAll():将一个List作为整体添加进去,如果是用add()方法是将元素添加进去。
get()
indexOf()
lastIndexOf()
set()
remove():删除整数类型的时候,必须要手动装箱,否则是按下标去删。
subList():作为终点的下标不包含进去

Set接口

继承了Collection接口

Set数据结构的特点:
无序性:不等于随机性,意思是存储的顺序不是按添加的顺序,而是按元素的哈希值来添加,即在底层数组的索引值与添加顺序不一样。
不可重复性:用equals()方法判断是否为同一个对象

*向Set添加元素时,元素所属的类必须已经重写了equals()和hashCode()方法,而且两个方法计算的哈希值要保持一致,所以重写两个方法的时候,可以共用一些变量。

Map接口

Key-Value:
key是用set存储的,所以是无序且不可重复的。需要存储的对象重写equals()和HashCode()方法
value是用Collection存储,无序且可重复。需要存储的对象重写equals()方法。
一一对应,不可以一对多。
用Entry类实现,其对象无序且不可重复,用Set存储。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值