集合
1.集合的概述
(1).集合的来由
我们学习的是面向对象的语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们必须把这个对象进行
存储,而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的只是里面,有哪一些是容器类
型的呢?
数组和StrngBuffer。但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能够选择数组,也就是对象数组。
而对象数组又并不能够适应变化的需求,因为数组的长度是固定不变的,这一个时候,为了适应变化的需求。Java就提供了集合类公供
我们使用。
(2).集合和数组的区别?
A:长度区别
数组的长度是固定的
集合的长度是可变的
B:内容不同
数组存储的是同一种类型的元素
集合可以存储不同类型的元素
C:元素的数据类型问题
集合可以存储基本类型的数据(如:int byte),也可以存储引用类型数据,如Student,String类型等
数组只可以存储基本类型。
(3).集合的结构体系
Java提供了很多种的集合,他们数据结构不同,但是他们肯定存在着共性的内容(如:存储,获取,判断等),通过不断的向上提取,他们就可以
获得一个集合的继承结构体系,而在这一个结构体系中,collection是老大,之后还有一些继承它的一些东西。
2.Collection类概述
(1).Collection类的功能概述
添加功能:
boolean add(Object obj):添加一个元素
boolean addAll(Collection c):添加一个集合的元素
(2).删除功能
void clear():移除所有的元素
boolean remove(Object o):移除一个元素
boolean removeAll(Collection c):移除一个集合的元素
(3).判断功能
boolean contains(Object o):判断集合中是否包含指定的元素
boolean containsAll(Collection c):判断集合中是否包含指定的合集元素
(4).获取功能
Iterator<E> iterator()
(5).长度功能
int size():获取元素的个数
(6).交集功能
boolean retainAll(Collection c):俩个集合都有元素
(7).把集合转化为数组
Object[] toArray();
集合遍历元素实现:
public class Test {
public static void main(String[] args) {
Collection c=new ArrayList();
c.add("hello");
c.add("world");
c.add("java");
Iterator it= c.iterator();
while(it.hasNext()){
String s=(String)it.next();//向下转型
System.out.println(s);
}
}
}
//输出结果
hello
world
java
(8).迭代器原理
迭代器为什么不定义成为一个类,而是定义成为一个接口?
解:假设接待器定义成为一个类,这样,我们就可以创建该类的对象,调用该类的方法来实现集合的遍历,但是我们需要考虑一个问题,
那就是,在Java中提供了许多的集合类,而这一些集合类的数据结构是不相同的,所以存储和遍历的方法也应该不相同,而遍历它的方
式也应该是不一样的,所以最终没有定义成为一个类,而是定义成为一个接口。
原文地址:https://www.cnblogs.com/nwxayyf/p/9532293.html