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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 马赛 中级黑马   /  2015-12-14 21:43  /  953 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

* 对象数组
        ** 概述: 就是存储对象的数组
                Student[] students = new Student[3] ;
* Collection集合
        ** 由来:        因为数组满足不了我们变化的需求,于是java就给我们提供了另一个相当强大的容器就是集合
        ** 集合继承体系图:
                |--- Collection
                        |-- List
                                |--- ArrayList
                                |--- Vector
                                |--- LinkedList
                        |-- Set
                                |--- HashSet
                                |--- TreeSet                       
        ** 集合功能概述
                * 基本功能               
                        boolean add(E e)                                添加元素
                        boolean remove(Object o)                删除元素
                        void clear()                                        删除所有的元素
                        boolean contains(Object o)                判断是否包含o这个元素
                        boolean isEmpty()                                判断集合是否为空
                        int size()                                                获取集合的长度       
                * 高级功能               
                        boolean addAll(Collection c)                        添加一个集合的元素
                        boolean removeAll(Collection c)                        删除一个集合的元素(删除一个以上算是删除)
                        boolean containsAll(Collection c)                判断是否包含一个集合的元素(包含所有的算是包含)
                        boolean retainAll(Collection c)                        获取交集        A集合对B集合取交集获取的交集元素存储在A中,返回的boolean类型的值表示A集合是否发生改变               
                * 把集合转换成数组(了解)
                        Object[] toArray() ;               
                * 使用迭代器遍历集合        (重点掌握)       
                        Iterator iterator() ;
                        代码演示:                       
  1. // 创建集合对象
  2.                                 Collection col = new ArrayList() ;
  3.                                
  4.                                 // 添加元素
  5.                                 col.add("你好") ;
  6.                                 col.add("世界") ;
  7.                                 col.add("爪哇") ;
  8.                                
  9.                                 // 获取迭代器对象
  10.                                 Iterator it = col.iterator() ;
  11.                                
  12.                                 // 循环遍历
  13.                                 while(it.hasNext()){
  14.                                        
  15.                                         // 获取元素,并且向下转型
  16.                                         String s = (String)it.next() ;
  17.                                        
  18.                                         // 输出
  19.                                         System.out.println(s + "----" + s.length()) ;
  20.                                        
  21.                                 }
  22.                
复制代码

* List集合
        ** 特点:        有序 , 元素可以重复 , 每一个元素都存在整数索引
        ** 特有的功能:
                void add(int index,E element):                在指定索引处添加元素
                E remove(int index):                                移除指定索引处的元素
                E get(int index):                                        获取指定索引处的元素
                E set(int index,E element):                        更改指定索引处的元素       
        ** ConcurrentModificationException: 并发修改异常
                解决方案:       
                        * 使用迭代器遍历集合,然后使用迭代器(ListIterator)修改元素
                        * 使用集合遍历元素,然后使用集合修改元素(普通for循环)               
* 数据结构       
        ** 概述:        就是存储数据的方式
        ** 分类:        栈 , 队列 , 数组 , 链表 , 树 , 哈希表
        ** 栈数据结构的特点:        先进后出
        ** 队列数据结构的特点:        先进先出
        ** 数组数据结构的特点:        查询快 , 增删慢
        ** 链表数据结构的特点:        查询慢 , 增删快
* List集合下的三个子类的特点
        ArrayList:                         底层的数据结构是数组,查询快 ,增删慢; 线程不安全,效率高
        Vector:                         底层的数据结构是数组,查询快 ,增删慢; 线程的安全,效率低
        LinkedList:                        底层的数据结构是链表,查询慢,增删快; 线程不安全,效率高

3 个回复

倒序浏览
不懂,路过...
回复 使用道具 举报

学到就懂了
回复 使用道具 举报
为什么这么短..
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马