zoukankan      html  css  js  c++  java
  • (1)Set集合 (2)Map集合 (3)异常机制

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

    1.2 常用的方法
    常用的方法参考Collection集合即可;
    Iterator<E> iterator() - 用于获取当前集合的迭代器,可以进行元素的迭代/遍历/访问
    其中Iterator是来自java.util包中的接口,该接口的主要方法有:
    boolean hasNext() - 用于判断当前集合中是否拥有可以访问的元素。
    E next() - 用于获取一个元素并指向下一个位置。
    void remove() - 用于从集合中删除刚刚迭代的最后一个元素。

    注意:
    当使用迭代器访问集合中的元素时,不允许使用集合中的remove()方法进行元素的删除操作,若进行该操作会引发ConcurrentModificationException并发修改异常,应该使用迭代器自己的remove()方法进行删除。

    1.3 增强版的for循环(for each结构 推荐)
    (1)语法格式
    for(元素类型 变量名 : 集合/数组名称){
    循环体;
    }

    (2)执行流程
    首先声明一个变量,然后不断地从集合/数组中取出一个元素赋值给变量,直到处理完毕所有元素为止。

    总结:
    访问Set集合中所有元素的方式有3种:toString()、迭代器、增强版for循环。
    访问List集合中所有元素的方式有4种:toString()、迭代器、增强版for循环、get()方法

    练习:
    准备一个List集合放入数据11 22 33 44 55,然后采用上述4种方式打印所有元素。

    1.4 TreeSet类
    (1)什么是二叉树?
    二叉树就是指最多有两个分叉的树形结构,换句话说,二叉树是指每个节点最多只有两个子节点的树形结构。

    (2)什么是有序二叉树?
    满足以下3个条件的二叉树叫做有序二叉树:
    a.左子树中的任意节点元素值都小于根节点;
    b.右子树中的任意节点元素值都大于根节点;
    c.左子树和右子树的内部也要遵循上述规则;

    (3)使用方式
    当放入元素到TreeSet对象时,需要指定元素之间比较大小的规则,具体方式如下:
    a.使用元素的自然排序进行处理,让元素类型实现java.lang.Comparable<T>接口;
    b.使用创建Set集合时传入的比较器对象处理,实现java.util.Comparator<T>接口;

    1.5 常用的工具类
    java.util.Arrays类中提供了大量用于操作数组元素的静态方法。
    java.util.Collections类中提供了大量用于操作集合元素的静态方法。

    2.Map集合(重点)
    2.1 基本概念
    java.util.Map<K,V>接口主要用于描述单对元素的集合,具体要求如下:
    K - 此映射所维护的键的类型
    V - 映射值的类型
    该集合中要求key不允许重复,每个key对应一个value。
    该集合的主要实现类:HashMap类 和 TreeMap类。

    2.2 常用的方法
    V put(K key, V value) - 用于将参数指定key和参数指定的value组成一对放入当前集合
    - 若当前集合中不存在key,则表示增加的功能,返回null。
    - 若当前集合中存在key,则表示修改的功能,返回之前的旧值。

    boolean containsKey(Object key)
    - 用于判断当前集合中是否包含参数指定的key。
    boolean containsValue(Object value)
    - 用于判断当前集合中是否包含参数指定的value。
    V get(Object key)
    - 用于根据参数指定的key返回对应的value,若key不存在则返回null。

    V remove(Object key)
    - 用于根据参数指定的key来删除该对元素,返回被删除元素的value。

    不忘初心,方得始终! 坚持!坚持!坚持!!
  • 相关阅读:
    Android实现简单的检测手机自由落体关闭屏幕
    Android Disable Package/Component 跳过app安装
    求单向链表中倒数第k个节点(c++):快慢指针/递归
    算法学习笔记---链表与数组
    pycharm使用matplotlib绘图学习笔记
    pycharm使用matplotlib绘制图像报错
    python numpy学习笔记
    python刷leetcode算法-- 左旋转字符串
    机器学习算法扫盲篇
    Kaggle入门篇
  • 原文地址:https://www.cnblogs.com/sumboy/p/9058600.html
Copyright © 2011-2022 走看看