zoukankan      html  css  js  c++  java
  • 【幻化万千戏红尘】qianfengDay14-java基础学习:集合,ArrayList,Iterator,LinkedList

    课程回顾:

    Date

    SimpleDateFormat

    Calendar

    String

    StringBuffer/StringBuilder

    包装类

    今日内容:

    集合:动态的存储多个对象

    1、长度可变

    2、存储引用类型

    java中的集合:

    1Collection<E>:继承了迭代器接口

    子接口:

    1List<E>:允许重复且有序

    1ArrayList<E>:底层实现:数组

    2LinkedList<E>:底层实现:双链式结构

    2Set<E>:不可重复且无序

    是否保证添加顺序,保证就是有序,不保证就是无序

    2Map<K,V>

    只有继承迭代器接口都可以使用增强for循环进行遍历输出

    ArrayList<E>:底层实现:数组 新增和删除的效率较低,修改和查找的效率较高

    常用方法:

    1add:添加元素对象,添加到末尾

    2add(index,e):添加元素到指定位置

    3size:获取集合中元素的个数

    4get:获取指定索引的元素

    5contains:验证指定的元素是否存在

    6indexOf:查找指定元素第一次的索引(从前往后),找到就返回索引,找不到-1

    7lastIndexOf:查找指定元素第一次出现的索引(从后往前)

    8remove:删除指定元素并返回删除是否成功 或者 删除指定索引的元素并返回元素

    9set:设置元素

    10iterator:获取集合的迭代器对象,主要用于遍历输出

    Iterator<E>:迭代器接口

    常用方法:

    hasNext:验证是否还有元素

    next:获取元素

    谨记:next方法调用一次就相当于索引自增1

    如果到达了集合的末尾再调用next方法时,会抛异常

    LinkedList<E>:底层实现:双链式结构     新增和删除效率较高,查询和修改效率较低

    常用方法:

    添加方法:

    add:添加,末尾

    addFirst:添加,首位

    addLast:添加,末尾

    offer添加,末尾

    offerFirst添加,首位

    offerLast添加,末尾

    push:添加到首位

    获取方法:

    get:获取指定索引的元素

    getFirst获取首位元素

    getLast获取最后一个元素

    element获取首位元素

    peek获取首位元素,如果为null则返回null

    peekFirst获取首位元素

    peekLast获取最后一个元素

    获取并删除方法:

    remove:获取并删除指定索引的元素

    removeFirst获取删除首位元素

    removeLast获取删除最后一个元素

    poll:获取删除首位元素

    pollFirst获取删除首位元素

    pollLast获取删除最后一个元素

    pop获取并删除首位元素

    其它方法:

    size:元素个数

    set:设置元素

    indexOf:从前往后查询

    lastIndexOf:从后往前查询

    clear:清空

    contains:包含

    集合:

    add

    remove

    set

    indexOf

    模拟堆栈:先进后出

    push:添加到首位

    pop获取并删除首位元素

    模拟队列:先进先出

    offer添加,末尾

    offerFirst添加,首位

    offerLast添加,末尾

    peek获取首位元素,如果为null则返回null

    peekFirst获取首位元素

    peekLast获取最后一个元素

    poll:获取删除首位元素

    pollFirst获取删除首位元素

    pollLast获取删除最后一个元素

    泛型:5.0之后

    之前的集合元素都是Object类型

    元素类型使用Object缺点:

    1、向上向下转型,性能损耗

    2、容易有ClassCastException异常

    泛型:引用数据类型的占位符

    好处:

    1、避免了存储和取出的对象转换,提供了效率

    在实际使用的时候,必须指明泛型的具体的引用类型

    java中的括号:

    ():方法

    []:数组

    {}:代码块,类体、方法体等

    <>:泛型

    练习:使用LinkedList进行存储整型

    要求随机生成数字填充,长度不限制

    查询8这个数字出现的次数

  • 相关阅读:
    QT全局热键(用nativeKeycode封装API,不跨平台)
    Android 短信模块分析(二) MMS中四大组件核心功能详解
    一个高效过滤非UTF8字符的C函数(也可用来判断是否utf8)
    Windows-1252对Latin1编码有改变(并不完全兼容),而且Latin1缺失了好多西欧字符(法语,德语,西班牙语都有)
    C++静态库与动态库
    CFBundleName系列参数的含义
    QT完美转换特殊字符的大小写
    Java-继承的应用
    RTTI、虚函数和虚基类的实现方式、开销分析及使用指导(虚函数的开销很小,就2次操作而已)
    delphi如何获得当前操作系统语言环境
  • 原文地址:https://www.cnblogs.com/weigongcheng/p/5735909.html
Copyright © 2011-2022 走看看