(62)集合概括、Collection共性方法

来源:互联网 发布:人工智能的英语怎么写 编辑:程序博客网 时间:2024/06/01 23:21

一、为什么出现集合类?
面向对象语言对事物的体现都是对象的形式,所以为了方便对多个对象的操作
就对对象进行存储,集合就是存储对象最常用的一种方式。

二、数组和集合类同是容器,有何不同?
数组虽然也可以存储对象,但是长度是固定的。
数组中可以存储基本数据类型
三、集合类的特点

集合只能存储对象,集合长度是可变的,集合可以存储不同类型的对象

这里写图片描述
四、Collection接口,ArrayList实现了这个接口,下面对Collection中的共性方法进行学习
add方法的参数类型是Object,多态的体现,以便于接收任意类型对象。

集合中存储的都是对象的引用(地址)

这里写图片描述

//创建一个集合容器,使用Collection接口的子类:ArrayList                ArrayList al=new ArrayList();                //添加元素                al.add("java01");//add(Object obj)是obj的原因是:集合元素类型不确定,多态的体现                al.add("java02");                al.add("java04");                al.add("java05");                //删除元素                //al.remove("java02");//参数为元素                al.remove(1);//参数为下标                //al.clear();清空                //获取集合长度                sop(al.size());                //是否存在某个元素indexOf(Object obj)获得特定元素的下标                sop("获取java04的集合下标:"+al.indexOf("java04"));                //sop("集合中包含Java03吗?"+((al.indexOf("java03")!=-1)?true:false));                //判断是否含某个元素                sop("该集合中是否含java02:"+al.contains("java02"));                //判断集合是否为空                sop("集合为为空?"+al.isEmpty());                //打印                sop(al);    }    public static void retainAll_method() {        ArrayList al=new ArrayList();        al.add("java01");        al.add("java02");        al.add("java08");        al.add("java05");        ArrayList a2=new ArrayList();        a2.add("java07");        a2.add("java08");        a2.add("java05");        a2.add("java06");        //al.retainAll(a2);//求交集,a1中只保留a2有的元素        al.removeAll(a2);//移除此集合(a1)中那些包含在指定集合(a2)中的元素        sop("al="+al);        sop("a2="+a2);//还有boolean containsAll(Collection c):如果此collection包含指定集合中的元素,返回true//这些方法的使用方法见Java.util.Collection接口方法

什么是迭代器?
就是集合的取出元素的方式。
就把取出定义在集合的内部,这样取出方式就可以直接访问集合内容的元素,即把取出方式定义成内部类。而每个容器的数据结构不同,那么取出的动作细节也不同,但是都是共性抽取。
共性抽取,说明这些内部类都有一些个规则,这个规则就是Iterator。

如何获取集合中的对象呢?通过一个对外提供的方法iterator();

public static void method_get() {        ArrayList al=new ArrayList();        al.add("java01");        al.add("java02");        al.add("java04");        al.add("java05");        Iterator it=al.iterator();//获取迭代器,用于取出集合中的元素        while(it.hasNext()) {            sop(it.next());        }        //也可以如下写法         for(Iterator it1=al.iterator();it1.hasNext();) {            sop(it1.next());        }    }
原创粉丝点击