java中的集合的根接口Collection以及迭代器

集合
集合和数组相同的是二者都是一个集合
不同的是数组中只能装同一类型的数据,并且数组的长度一旦确定下来就不能再改变了,集合中可以装不同类型的数据,但是只能装引用数据类型,当然基本数据类型自动装箱后也可以装进去,另外集合的长度是可以改变的.
集合的分类:Collection是集合的根接口,它有俩子接口Set和List;Set下面又有三个实现类:ArrayList,LinkedList和Verctor;Set下面有俩实现类:HashSet和TreeSet.
具体的关系入下图:
这里写图片描述
我们先来学习一下Collection,首先Collection是个接口,所以Collection是没有构造方法的,不能直接进行初始化,这里我们利用多态的方式进行初始化,根据Collection的实现类ArrayList来创建Collection的对象.

Collection collection =  new ArrayList();//根据实现类来定义接口
collection.add("a");//往集合中添加元素
collection.add("b");//往集合中添加元素用add
collection.add(18);
//能装基本数据类型是因为系统对参数做了个向上转型,将所有括号中的参数的数据类型转换为Object

下面我们来学习一下collection的一些常用的API
1.添加
注意add()和addAll()的区别

Collection collection =  new ArrayList();//根据实现类来定义接口
Collection collection1 =  new ArrayList();//根据实现类来定义接口
collection.add("a");
collection.add("b");
collection.add("c");
collection1.add("d");
collection1.add("e");
collection.add(collection1);//这里是把collection1作为一个元素传入集合
collection.addAll(collection1);//这里是把collection1中的所有元素传入collection.

2.

Collection collection =  new ArrayList();
collection.add("a");
int number=  collection.size()//获取集合的长度
boolean bool = collection.isEmpty;//判断集合是否为空
boolean bool1 =collection.contains("a");//判断集合是否包含字符串"a"
collection.remove("a");//删除集合中"a",如果集合中有要删除的对象则返回true,反之返回false
collection.clear();//清空集合

3.remove()和removeAll()的区别

Collection collection =  new ArrayList();
collection.add("a");
collection.add("b");
collection.add("c");
collection.add("d");
Collection collection1 =  new ArrayList();
collection.add("c");
collection.add("d");
collection.remove(collection);//返回值为false,因为collection没有collection1这个元素
collection.removeAll(collection1);//返回值为true,因为这个是把collection1中的所有元素移除,也就是说移除collection与collection1中的公共部分

4.retainAll

Collection collection =  new ArrayList();
collection.add("a");
collection.add("b");
collection.add("c");
collection.add("d");
Collection collection1 =  new ArrayList();
collection.add("c");
collection.add("d");
collection.retainAll(conllection1);//保留collection和collection1的公共部分,如果有collection改动了返回值就为true,否则就为false

迭代器

迭代器(Iterator)模式,又叫做游标模式,它的含义是,提供一种方法访问一个容器对象中各个元素,而又不需暴露该对象的内部细节。
每一个集合都用一个迭代器,用来遍历集合的.
迭代器能遍历数组主要需要用到两个API:hasNext()和next();
hasNext()返回值是一个boolean类型,当返回true,就说明集合中还有元素可以遍历,next()是用来获取这个元素的

Collection collection0 =  new ArrayList();
collection0.add("a");
collection0.add("b");
collection0.add("c");
collection0.add("d");
System.out.println(collection0);//系统在输出引用数据类型的数据时会自动调用.toString()方法

输出结果是[a,b,c,d];
下面我们来遍历

Iterator iterator = collection.iterator();//用集合调用获取迭代器的方法来得到迭代器
while(iterator.hasNext())//循环条件是集合中没有可遍历的元素
{
  System.out.println(iterator.next)//打印出可遍历的元素
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值