本帖最后由 小石姐姐 于 2017-12-22 15:15 编辑
Java六期就业班第一次技术交流
集合Today is a beautiful day to work集合Collection中的常用功能- Collection(是接口不能实例化)
- boolean add(Object e) --- 添加元素
- void clear() --- 清空集合
- boolean contains(Object o) --- 是否包含某个元素
- boolean isEmpty() --- 是否为空
- boolean remove(Object o) --- 删除某个元素
- int size() --- 集合的长度
- Object[] toArray() --- 将集合转换成一个Object类型的数组
- 返回包含此 collection 中所有元素的数组。如果 collection 对其迭代器返回的元素顺序做出了某些保证,那么此方法必须以相同的顺序返回这些元素。
Iterator(迭代器)集合的遍历方式 1.toArray(),可以把集合转换成数组,然后遍历数组即可 2.iterator(),对 collection 进行迭代的迭代器,可以返回一个迭代器对象(可用于遍历集合)- 迭代器-Iterator
- E next() --- 返回下一个元素
- boolean hasNext() --- 如果仍有元素可以迭代,则返回 true
并发修改异常并发修改异常 -- ConCurrentModificationException- 迭代器是依赖于集合的,相当于集合的一个副本,当迭代器在操作的时候,如果发现和集合不一样,则抛出异常
- 修改
- 解决方案
- 不使用迭代器
- 在使用迭代器进行遍历的时候,使用迭代器进行修改
- List接口中ListIterator ListIterator()获取List的迭代器,然后调用ListIterator()的add方法
- 删除元素 -- remove()
- List接口
- 类型转换异常
- 由于集合可以储存雷伊类型的对象,当我们存储了不同类型的对象,就有可能在转换的时候出现异常
- 所以Java为了解决这个问题,给我们提供了一个机制,泛型
泛型- 泛型
- 是一种广泛类型,把明确数据类型工作提前到编译时期,借鉴了数组特点
增强for- foreach
- 格式
- for(元素的类型 变量:集合或者数组对象){ 可以直接使用变量; }
- 注意:增强for中不能修改集合(该表集合长度),会发生并发修改异常
- 原因:因为增强for循环内部使用的是迭代器进行迭代
- 增强for优缺点:
- 优点:简单快捷拿到每一个元素
- 缺点:
- 循环过程中不能修改集合
- 不能像普通的for循环那样使用索引
常见数据结构- 数组
- 数组特点:(增删慢,查询块)
- 元素类型必须一致
- 元素有整数索引
- 长度无法改变
- 可以存基本数据类型,也可以存引用数据类型
- 链表
- 链表的特点:增删快,查询慢
- 链表:由链子连起来的一堆结点
- 链表与数组的异同
- 数组特点:增删慢,查询块
- 链表的特点:增删快,查询慢
- 栈&队列
List<E>- List
- 特点
- 1.有序地 -- 存取和读取顺序是一致的
- 2.有整数索引
- 3.允许重复的
- List的特有方法
- void add(int index,E element) -- 在指定索引位置添加指定元素
- E get(int index) -- 根据索引,返回元素
- E remove(int index) -- 根据索引删除,返回删除元素
- E set(int index,E element) -- 根据索引修改元素,返回被修改的元素
LinedList如果查询多,增删少,使用ArrayList 如果查询少,增山多,使用LinkedList- LinkedList
- 特点
- void addFirst(E e) -- 将元素添加开头
- void addLast(E e) -- 将元素添加到最后
- E removeFirst() -- 删除索引为0的元素,并返回该元素
- E removeLast() -- 删除索引为size-1的元素,并返回该元素
- E getFirst() -- 获取索引为0的元素
- E getlast() -- 获取最后一个元素
盛不下了,就这样吧
|
|