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

来源:互联网 发布:painter自动上色软件 编辑:程序博客网 时间:2024/06/06 10:14

集合
集合和数组相同的是二者都是一个集合
不同的是数组中只能装同一类型的数据,并且数组的长度一旦确定下来就不能再改变了,集合中可以装不同类型的数据,但是只能装引用数据类型,当然基本数据类型自动装箱后也可以装进去,另外集合的长度是可以改变的.
集合的分类: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");//往集合中添加元素用addcollection.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,反之返回falsecollection.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)//打印出可遍历的元素}
阅读全文
0 0