* 对象数组
** 概述: 就是存储对象的数组
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() ;
代码演示:
- // 创建集合对象
- Collection col = new ArrayList() ;
-
- // 添加元素
- col.add("你好") ;
- col.add("世界") ;
- col.add("爪哇") ;
-
- // 获取迭代器对象
- Iterator it = col.iterator() ;
-
- // 循环遍历
- while(it.hasNext()){
-
- // 获取元素,并且向下转型
- String s = (String)it.next() ;
-
- // 输出
- System.out.println(s + "----" + s.length()) ;
-
- }
-
复制代码
* 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: 底层的数据结构是链表,查询慢,增删快; 线程不安全,效率高
|
|