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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 进击的大鹏 中级黑马   /  2014-9-14 22:45  /  2190 人查看  /  16 人回复  /   1 人收藏 转载请遵从CC协议 禁止商业使用本文

1.        对象数组
需求:有学生的姓名和成绩,要求把所有的学生姓名和成绩,存储起来
容器只有数组一种,如何存储。将学生的信息,进行对象的封装,出现一个描述学生对象的类 class Student{姓名,成绩}。利用数组存储学生对象,存储对象的这个数组,对象数组。由于对象数组,始终还是改变不了数组定长的问题,Java工程师们,从JDK1.2版本开始,出现了集合框架。
2.        数组和集合的区别
  数组还是集合都是容器,容器就是用来存储的!
        数组的长度是固定的,集合的长度是可变的
        数组可以存储对象,也可以存储基本数据类型,但是集合只存对象,不存储基本数据类型,集合存储的都是引用类型
3.        学习集合框架,到底需要学的是什么
        掌握,如何把对象存储到集合这个容器中
        掌握,如何把对象中集合容器中获取出来
        掌握,集合中每一个类的自身特点
4.        集合的框架图
  集合是一个继承体系,学习的是这个体系中的最顶层,建立最底层类的对象
  集合有一个顶层的接口 java.util.Collection,定义了这个体系的最共性的内容
5.        集合派系的顶层接口Collection
public interface Collection<E>   <E>泛型  <E> == Object
Collection接口中的方法
Collection集合存储对象,存储对象的方法
        add(E e) 将元素存储到集合的方法  add(Object e)参数,任何对象都可以传递的
        addAll(Collection c)将一个集合添加到另一个集合中

Collection集合中,移除对象的方法
        boolean remove(Object o)传递一个对象,移除这个对象,移除成功返回true
        boolean removeAll(Collection c)移除,两个集合的共性元素

Collection集合中的其他方法
         void clear()移除集合中的所有元素
         int size()返回集合中存储的元素的个数
         boolean contains(Object o)判断参数,在不在集合中,如果在返回true
         boolean containsAll(Collection c)判断一个集合是否包含另一个集合,包含返回true
         boolean retainAll(Collection c)获取两个集合的交集

6.        迭代器
什么是迭代器:取出集合中存储的对象的方式,接口Collection中,定义了一个方法,是集合中所有的子类都具备的, Iterator iterator(),返回一个Iterator类型的对象
由于每个集合存储对象的方式不同,取出方法也不同
iterator方法返回的是一个接口的类型,接口本身不能创建对象的,返回的肯定是接口的实现类对象,迭代器的原理,其实就是每个集合中的内部类的事情,集合中的内部类,实现了Iterator接口,使用iterator方法,获取的就是内部类的对象
Inerator接口中的三个方法
        boolean hasNext() 判断集合中还没有没有下一个被取出的元素,有返回true
        Object next() 获取集合中的元素 ,看成是arr[i]
        void remove() 移除遍历到的集合中的元素
实现迭代器取出集合对象的三个步骤
        通过集合对象的iterator方法,获取迭代器对象,返回的是一个接口的实现类
        使用迭代器对象的hasNext()方法,判断集合中还有没有对象可以被取出
        使用迭代器对象的next()方法直接获取存储到集合中的对象
    迭代器是获取存储到集合的对象的通用方式
    注意,如果迭代器已经获取完了,再次获取,出现没有元素被取出异常
    注意,迭代过程中,出现了并发修改异常ConcurrentModificationException。出现异常的原因:使用集合的方法修改了集合的长度,而迭代器不知道,因此出现并发修改异常。在迭代的过程中,不要使用集合的方法,改变集合长度
    一次迭代中,不能出现多次next方法,否则可能出现异常,出现数据错乱

评分

参与人数 1黑马币 +1 收起 理由
海燕 + 1 赞一个!

查看全部评分

16 个回复

倒序浏览
不系之舟王 来自手机 中级黑马 2014-9-15 00:25:53
沙发
学习的东西貌似不多
回复 使用道具 举报
学习学习
回复 使用道具 举报
路过,学习一下
回复 使用道具 举报
是视频基础班么
回复 使用道具 举报
学习,加油哦
回复 使用道具 举报
学习啦~~~!
回复 使用道具 举报
nyk 中级黑马 2014-9-15 12:55:54
8#
善于总结,赞一个!
回复 使用道具 举报
谢谢分享。
回复 使用道具 举报
青峰牧雪 来自手机 中级黑马 2014-9-17 07:00:12
10#
谢谢分享
回复 使用道具 举报
复习一下
回复 使用道具 举报
学习学习,谢谢分享
回复 使用道具 举报
总结的。。
回复 使用道具 举报
值得收藏
回复 使用道具 举报
记得东西挺好的,可以学习一下啊
回复 使用道具 举报
学习了多少天呢
回复 使用道具 举报
是参加的基础培训班吗
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马