Java 集合与泛型-集合

在编写面向对象的程序时,经常要用到一组类型相同的对象。可以使用数组来集中存放这些类型相同的对象,但数组一经定义便不能改变大小。因此,Java 提供了一个集合框架该框架定义了一组接口和类,使得处理对象组更容易。集合是指集中存放一组对象的一个对象。集合相当于一个容器,提供了保存、获取和操作其他元素的方法。集合能够帮助Java程序员轻松地管理对象。Java集合框架由两种类型构成,一个是Collection;另一个是Map。Collection 对象用于存放一组对象,Map对象用于存放一组“关键字/值”的对象。Collection 和Map是最基本的接口,它们又有子接口。

 Collection<E>接口是所有集合类型的根接口,继承了Iterable<E>接口。它有三个子接口:Set 接口、List 接口和Queue 接口。Collection接口定义了集合操作的常用方法,这些方法可以简单分为基本操作、批量操作、数组操作和流操作。

1.集合基本操作.

实现基本操作的方法有添加元素、删除指定元素、返回集合中元素的个数、返回集合的迭代器对象。
boolean add(E e):向集合中添加元素e。
boolean remove(Object o):从集合中删除指定的元素0。
boolean contains(Objecto):返回集合中是否包含指定的元素0。
boolean isEmpty():返回集合是否为空,即不包含元素。
int size():返回集合中包含的元素个数。
 Iterator iterator():返回包含所有元素的迭代器对象。
default void forEach(Consumer<? super T> action):从父接口继承的方法,在集合的每个元素上执行指定的操作。

2.集合批量操作.

下面的方法可实现集合的批量操作。
boolean addAl(Collection<?extends E> c):将集合c中的所有元素添加到当前集合中。
boolean removeAll(Collection<?> c):从当前集合中删除c中的所有元素。
dcfault boolean removelf(Predicate<? super E> filter):从当前集合中删除满足谓词的所有元素。
 boolean containsAll(Collection<?> c):返回当前集合是否包含c中的所有元素。
boolean retainAll(Collection<?>c):在当前集合中只保留指定集合c中的元素,其他元素删除。
void clear():将集合清空。

3.集合中的数组操作.

下面方法可以将集合元素转换成数组元素。
Object[ ] toArray():返回包含集合中所有元素的对象数组。
<T> T[ ] toArray(T[ ] a):返回包含集合中所有元素的数组,返回数组的元素类型是指定的数组类型。
设c是一个Collection对象,下面的代码将c中的对象转换成一个新的Object 数组,数组的长度与集合c中的元素个数相同。
Objectll a = c.toArray();
假设知道c中只包含String 对象,可用下面代码将其转换成String数组,它的长度与c中元素个数相同。
String[ ] a = c.toArray(new String[0]);

4.集合中流(Stream)操作方法
Stream API是Java8新增的功能,称为流API。可以在集合上创建一个Stream对象,然后在其上执行有关操作。
public default Stream<E>stream():以当前集合作为源返回一个顺序Stream对象。public default Stream<E> paralellStream():以当前集合作为源返回一个并行Stream对象。

5.常用的集合类

集合类Collection:代表多个对象的集合;根据其子接口,又可以分为以下三大类。
Queue:队列类,先进先出的队列。
List:列表类,其中的元素是有序的,且允许元素
重复。
Set:集合类,其中的元素是有序或无序的,且不
允许元素重复。
映射类Map:存储多个键值对。

6.集合类的概述。

Iterator 与 Enumeration:迭代器与枚举,迭代器是枚举的最新实现,它的函数简单而且提供
了州除元素的函数,最新的类的实现推荐使用Iterator。
Collections 与 Collection: Collections 是用来操作Collection实例的服务类。
Arrays与数组:Arrays是用来操作数组的服务类。
Dictionary字典(此类已过时)。
Queue队列。
 

总结:

(1)Collection接口为所有集合类提供类共同方法。列表是一个有序集合,其中的每个元素都有一个整数索引,ArrayList 是它的常用实现类。Set是不重复元素的集合,HashSet和TreeSet 是它的两个常用实现类。
(2)Queue 实现一种队列的数据结构,以先进先出(FIFO)的方式排列其元素。Deque对象实现双端队列,ArrayDeque 和LinkedList 是它的两个实现类。
(3)Map 用来存储“键/值”对的对象,要求关键学是唯一的,而值可以重复。Map接口常用的实现类有HashMap、TrccMap类。
(4)java.util.Collections 工具类中针对List定义了大量操作算法,如排序、查找、重排、求极值等操作。
(5)使用迭代器可以遍历集合中的元素,但无法实现高效的并发执行。使用Stream API可以高效对集合操作。
(6)可以从集合、数组、生成器或迭代器创建Stream。
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值