集合框架

集合框架

1 Collection

在实际开发中,需要将使用的对象存储于特定数据结构的容器中,JDK提供了这样的容器——集合(Collection)。
• Collection是一个接口,定义了集合相关的操作方法,其有两个子接口:List和Set。
在这里插入图片描述
• 集合中存储的都是引用类型元素,并且集合只保存每个元素对象的引用,而并非将元素对象本身存入集合。

在这里插入图片描述

2 常用API

add方法
• Collection定义了一个add方法用于向集合中添加新元素。
— boolean add(E e)
• 该方法会将给定的元素添加进集合,若添加成功则返回true,否则返回false。
在这里插入图片描述
contains方法
boolean contains(Object o)
• 该方法会用于判断给定的元素是否被包含在集合中。若包含则返回true,否则返回false。
• 需要注意的是,集合在判断元素是否被包含在集合中是根据每个元素的equals()方法进行比较后的结果,通常有必要重写equals()保证contains()方法的合理结果。
在这里插入图片描述
size、clear、isEmpty
• int size() 该方法用于返回当前集合中的元素总数。
• void clear() 该方法用于清空当前集合。
• boolean isEmpty() 该方法用于判断当前集合中是否不包含任何元素
在这里插入图片描述
addAll、containsAll
• boolean addAll(Collection<? extends E> c)
该方法需要我们传入一个集合,并将该集合中的所有元素添加到当前集合中。
如果此collection用于调用而发生更改,则返回true。
• boolean containsAll(Collection<? extends E> c)
该方法用于判断当前集合是否包含给定集合中的所有元素,若包含则返回true。

在这里插入图片描述

3 Iterator

hasNext、next方法
• 迭代器用于遍历集合元素。获取迭代器可以使用Collection定义的方法:
— Iterator iterator()
• 迭代器Iterator是一个接口,集合在重写Collection的iterator()方法时利用内部类提供了迭代器的实现。
• Iterator提供了统一的遍历集合元素的方式,其提供了用于遍历集合的两个方法:
— boolean hasNext():判断集合是否还有元素可以遍历。
— E next():返回迭代的下一个元素。
在这里插入图片描述
remove方法
在使用迭代器遍历集合时,不能通过集合的remove方法删除集合元素,否则会抛出并发更改异常。我们可以通过迭代器自身提供的remove()方法来删除通过next()迭代出的元素。
— void remove()
• 迭代器的删除方法是在原集合中删除元素。
• 需要注意的是,在调用remove方法前必须通过迭代器的next()方法迭代过元素,那么删除的就是这个元素。并且不能再次调用remove方法,除非再次调用next()后方可再次调用。
在这里插入图片描述
增强型for循环
Java 5.0之后推出了一个新的特性,增强for循环,也称为新循环。该循环不同于传统循环的工作,其只用于遍历集合或数组。
语法:在这里插入图片描述
新循环并非新的语法,而是在编译过程中,编译器会将新循环转换为迭代器模式。所以新循环本质上是迭代器。在这里插入图片描述

4 泛型机制

泛型是Java SE 5.0引入的特性,泛型的本质是参数化类型。在类、接口和方法的定义过程中,所操作的数据类型被传入的参数指定。
Java泛型机制广泛的应用在集合框架中。所有的集合类型都带有泛型参数,这样在创建集合时可以指定放入集合中元素的类型。Java编译器可以据此进行类型检查,这样可以减少代码在运行时出现错误的可能性。
ArrayList类的定义中,中的E为泛型参数,在创建对象时可以将类型作为参数传递,此时,类定义所有的E将被替换成传入的参数:

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值