A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© IT_JM 中级黑马   /  2013-10-10 08:52  /  1245 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

第一讲集合框架
先看下面的图:
file:///C:/Users/dou/AppData/Roaming/Tencent/Users/281665334/QQ/WinTemp/RichOle/V$_Q8X6VCK8$DAPRF_27HKR.jpg
这就是集合框架的构成。由于数据结构的不同,有不同的集合,也叫容器。下面是集合类的简单介绍。
一、为什么出现集合类?
        面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,就对对象进行存储,集合就是存储对象最常用的一种方式。
二、数组和集合类同是容器,有何不同?
        数组虽然也可以存储对象,但长度是固定的;集合长度是可变的。数组中可以存储基本数据类型,集合只能存储对象。
三、集合类的特点
        集合只用于存储对象,集合长度是可变的,集合可以存储不同类型的对象。
第二讲  Collection
        Collection是集合框架中的常用接口。其下有两个子接口:List(列表),Set(集)。
       所属关系:
            Collection
                     |--List//元素是有序的,元素可以重复。因为该集合体系有索引。
                     |--Set//元素是无序的,元素不可以重复。
一、Collection接口中的常见操作
1、添加元素
        add(Objectobj); //add方法的参数类型是Object。以便于接收任意类型对象。
2、删除元素
        remove(Objectobj);
        removeAll(另一集合);//调用者只保留另一集合中没有的元素。
        clear();//清空集合
3、判断元素
        contains(Objectobj);//判断是否存在obj这个元素
        isEmpty();//是否为空
4、获取个数,集合长度
        size();
5、取交集
        retainAll(另一集合);//调用者只保留两集合的共性元素。
注:集合中存储的都是对象的引用(地址)。
二、迭代
1、概述
        迭代是取出集合中元素的一种方式。
        对于集合的元素取出这个动作:
        当不足以用一个函数来描述,需要用多个功能来体现,所以就将取出这个动作封装成一个对象来描述。就把取出方式定义在集合的内部,这样取出方式就可以直接访问集合内部的元素。那么取出方式就被定义成了内部类。
        而每一个容器的数据结构不同,所以取出的动作细节也不一样。但是都具有共性内容: 判断和取出。那么就可以将这些共性抽取。
         那么这些内部类都符合一个规则(或者说都抽取出来一个规则)。该规则就是Iterator。通过一个对外提供的方法:iterator();,来获取集合的取出对象。
         因为Collection中有iterator方法,所以每一个子类集合对象都具备迭代器。
2、迭代的常见操作
        hasNext();//有下一个元素,返回真
        next();//取出下一个元素
        remove();//移除
注:在迭代时循环中next调用一次,就要hasNext判断一次。
使用:
         ArrayList a=newArrayList();//创建一个集合
        Iteratorit=a.iterator();//获取一个迭代器,用于取出集合中的元素。
        第一种打印方式:
                for(Iterator iter = a.iterator();iter.hasNext();  )
                {
                           System.out.println(iter.next());
                }
       第二种打印方式:
                 Iteratoriter = a.iterator();
                while(iter.hasNext())
               {
                           System.out.println(iter.next());
               }
3、迭代注意事项
·         迭代器在Collcection接口中是通用的,它替代了Vector类中的Enumeration(枚举)。
·         迭代器的next方法是自动向下取元素,要避免出现NoSuchElementException。
·         迭代器的next方法返回值类型是Object,所以要记得类型转换。

评分

参与人数 1技术分 +1 收起 理由
黄文伯 + 1 赞一个!

查看全部评分

1 个回复

倒序浏览
{:soso_e116:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马