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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 小石姐姐 于 2017-12-22 15:15 编辑

Java六期就业班第一次技术交流



集合Today is a beautiful day to work集合
  • ArrayList
    • 永远可以添加成功,因为ArrayList允许重复
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() --- 返回下一个元素
      • 注意:使用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
    • 底层链表结构,查询慢,增删块
如果查询多,增删少,使用ArrayList 如果查询少,增山多,使用LinkedList
  • LinkedList
    • 特点
      • void addFirst(E e) -- 将元素添加开头
      • void addLast(E e) -- 将元素添加到最后
      • E removeFirst() -- 删除索引为0的元素,并返回该元素
      • E removeLast() -- 删除索引为size-1的元素,并返回该元素
      • E getFirst() -- 获取索引为0的元素
      • E getlast() -- 获取最后一个元素

盛不下了,就这样吧

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马