集合框架__01Collection

一:集合类
1:为什么出现集合类?
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,Java就提供了集合类。
2:数组和集合类同是容器,有何不同?
A:长度区别 (1:数组的的长度固定;2:集合长度可变)
B:内容不同 (1:数组存储的是同一种类型的元素;2:集合可以存储不同类型的元素)
C:元素的数据类型问题 (1:数组存储基本数据类型,也可以存储引用类型数据;2:集合只能存储引用类型数据(对象))

3:集合类的特点
集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。

二:Collection接口概述

Collection 层次结构中的根接口。
Collection 表示一组对象,这些对象也称为 collection 的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是无序的。

Collection接口成员方法

1:添加功能

 boolean add(Object object):添加一个元素
 bollean addAll(Collection c):添加一个集合的元素

2:删除功能

boolean remove(Object o):移除一个元素
void clear():移除所有元素
boolean removeAll(Collection c):移除一个集合的元素,(只要有一个元素被移除,就返回true)

3:判断功能:

boolean contains(Object o):判断集合是否包含指定的元素
boolean containsAll(Collection c):判断集合是否包含指定的集合元素(只有包含所有的元素,才叫包含,返回true)
boolean isEmpty():判断集合是否为空

4:长度功能:

int size():元素的个数
面试题:数组没有length()方法,字符串有length()方法,集合没有length()方法,有size()方法
A:针对数组提供了length属性来获取数组的长度
B:针对字符串提供了length()方法来获取字符串的长度
C:针对泛型集合类提供了size()方法来获取元素的个数

5:获取功能:

Iterator iterator()

迭代器,集合的专用遍历方式,迭代器是依赖结合而存在的

Collection c = new ArrayList();//创建集合对象
......//给集合中添加元素
Iterator it =  c. iterator();

6:交集功能

boolean retainAll(Collection c)(假设有两个集合A ,B ,A和B做交集,最终的结果保存在A中,B不变。返回值表示的是A是否发生过过改变)

7:把集合转换为数组
Object[] toArray()
把集合转成数组,可以实现集合的遍历

三:集合的使用步骤:
A:创建集合对象
B:创建元素对象
C:把元素添加到集合
D:遍历集合

	1:通过集合对象获取迭代器对象
	2:通过迭代器对象的hasNext() 方法判断是否有元素
	3:通过迭代器对象的next()方法获取元素并移动到下一个位置
public static void main(String[] args) {
		//创建元素对象
		Student []  student= new  Student[4] ;
		student[0] = new Student("张帆",20);
		student[1] = new Student("张大狗",21);
		student[2] = new Student("张二狗",20);
		student[3] = new Student("张小狗",19);  
		
		//创建集合对象
		Collection  c = new ArrayList();
		
		//把元素添加到集合
		c.add(student[0]);
		c.add(student[1]);
		c.add(student[2]);
		c.add(student[3]);
		
		
		//通过集合对象获取迭代器对象
		Iterator it = c.iterator();//多态
		
		//通过迭代器对象的hasNext() 方法判断是否有元素
		//通过迭代器对象的next()方法获取元素并移动到下一个位置
		while(it.hasNext()){
			System.out.println(it.next());//返回迭代的下一个元素
			System.out.println("*********************************");
			
			
			Student s =(Student) it.next();
			System.out.println(s.getName() + "----" + s.getAge());
			System.out.println("**********************************");
			
			
			/*
			//尽量不要多次使用it.next();下面代码输出第一个人的名字,第二个的年龄,第三个人的名字,第四个人的年龄
			System.out.println(((Student) it.next()).getName()+"-----"
			+((Student) it.next()).getAge());*/
		}
		
		//for循环改写,效率高,但是不方便理解
		/*
		for(Iterator it = c.iterator();it.hasNext();){

			Student s =(Student) it.next();
			System.out.println(s.getName() + "----" + s.getAge());
		}*/
	}
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>