• (1)List集合 (2)Queue集合 (3)Set集合


    1.List集合(重中之重)
    1.1 基本概念
    java.util.List接口是Collection接口的子接口,该接口中元素有先后放入次序并允许重复
    该接口的主要实现类:ArrayList类、LinkedList类、Stack类以及Vector类(笔试题)。
    其中ArrayList类的底层是采用动态数组实现的,因此访问元素方便,增删元素不方便。
    其中LinkedList类的底层是采用双向链表实现的,因此增删元素方便,访问元素不方便。
    其中Stack类的底层是采用动态数组实现的,该类通常用于描述具有后进先出特征的数据结构,叫做栈(last in first out LIFO)。
    其中Vector类的底层是采用动态数组实现的,与ArrayList类相比,属于线程安全的类,因此操作元素的效率比较低,因此推荐使用ArrayList类。

    1.2 常用的方法(练熟、记住)
    void add(int index, E element) - 用于将元素element插入到当前集合index位置。
    boolean addAll(int index, Collection<? extends E> c)
    - 用于将集合c中的所有元素插入到当前集合中index位置。
    E get(int index) - 根据参数指定的下标获取对应的元素并返回。
    E set(int index, E element) - 用于将下标index位置的元素替换为element。
    - 返回被替换的元素值。
    E remove(int index) - 用于删除当前集合中index位置的元素并返回。
    List<E> subList(int fromIndex, int toIndex)
    - 用于获取当前集合中从fromIndex(含)开始到toIndex(不含)之间的部分视图。
    - 视图简单来说就是获取元素并返回,但没有申请独立内存空间去存储。

    1.3 泛型机制
    目前集合中之所以可以放入不同类型的元素,是因为集合将所有放入的元素都看做Object类型处理的,当从集合中获取元素时得到的也是Object类型,为了表达该元素真实的数据类型就需要强制类型转换,而该方式可能引发类型转换异常。
    为了避免上述错误的发生,从jdk1.5开始提出泛型机制,也就是在集合名称的右侧使用<数据类型>的方式明确要求该集合可以存放的数据内容,若放入其他内容则编译报错。
    如:
    List<Integer> lt1 = new LinkedList<Integer>();

    原理(尽量理解):
    泛型机制的本质就是参数化类型,也就是在集合的定义中使用<E>作为形式参数负责占位,当创建集合的对象时<>中的数据类型作为实际参数来初始化形式参数E,此时集合内部的所有E就被替换为<>中的数据类型,从而实现了数据类型作为参数的传递。
    由于实际参数的类型可以有多种选择,从而使得同一个集合可以支持广泛的数据类型,因此得名为"泛型机制"。
    如:
    //int i = 10; //E = Integer;
    //int i = 20; //E = String;
    public void show(int i){ public interface List<E>{
    ...; ...;
    } }

    show(10); List<Integer> lt1 = ...;
    show(20); List<String> lt1 = ...;

    2.Queue接口(重点)
    2.1 基本概念
    java.util.Queue接口是Collection接口的子接口,与List接口是平级关系。
    该接口主要用于描述具有先进先出特征的数据结构,叫做队列(first in first out FIFO).
    该接口的主要实现类为:LinkedList类,该类在增删方法有很大的优势。

    2.2 常见的方法
    boolean offer(E e) - 用于将参数指定的元素e插入当前队列的末尾,成功返回true,
    否则返回false。
    E poll() - 用于获取并移除当前队列中的队首元素,若队列为空则返回null。
    E peek() - 用于查看当前队列的队首元素,若队列为空则返回null。

    3.Set集合(重点)
    3.1 基本概念
    java.util.Set接口是Collection接口的子接口,与List接口平级。
    该接口中的元素没有放入次序,并且不允许重复。
    该接口的主要实现类:HashSet类 和 TreeSet类。
    其中HashSet类的底层是采用哈希表来实现数据内容的管理。
    其中TreeSet类的底层是采用有序二叉树来实现数据内容的管理。

    3.2 常用的方法
    该接口的方法参考Collection接口的方法即可;
    Iterator<E> iterator() - 用于获取当前集合中的迭代器,用于迭代/遍历/访问所有元素
    其中Iterator是java.util包中的接口,常用方法如下:
    boolean hasNext() - 用于判断当前迭代器是否拥有可以迭代/访问的元素。
    E next() - 用于获取一个元素并指向下一个位置。

    不忘初心,方得始终! 坚持!坚持!坚持!!
  • 相关阅读:
    Quick Union
    Quick Find (QF)
    ubuntu kylin18 安装NVIDIA驱动
    vim 快捷键(update)
    Qt中的ui指针和this指针
    两种状态机扫描按键,第二种只要三行!!!
    RPi:QT+wiringPi demo程序
    esp-12e折腾
    vfd电子时钟制作
    vfd with stm8
  • 原文地址:https://www.cnblogs.com/sumboy/p/9058584.html
Copyright © 2020-2023  润新知