zoukankan      html  css  js  c++  java
  • 【幻化万千戏红尘】qianfengDay15-java基础学习:List,ArrayList,LinkedList,comparable,comparator

    课程回顾:

    集合:动态存储多个对象

    长度可变,存储同一种类型的对象

    1、Collection<E>:

    1、List<E>:重复且有序

    常用方法:

    add

    get

    set

    indexOf

    contains

    remove

    size

    clear

    iterator

    1、ArrayList<E>:数组

    2、LinkedList<E>:双链式

    offer

    peek

    poll

    pop

    push

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

    2、Map<K,V>

    今日内容:

    Set<E>:无序且不重复

    1、HashSet<E>: 底层实现:哈希散列存储,其实就是根据哈希值按照固定的算法计算位置

    新增元素时,首先会调用对象的hashCode方法获取哈希值

    与集合中其他元素的哈希值进行比较,如果哈希值相同会调用equals方法,

    若返回true,说明相同,则添加失败

    若返回false则添加成功,如果哈希值不同则直接添加

    一般而言:我们使用HashSet存储自定义类时,需要对类重写hashCode和equals方法

    public int hashCode() {}

    public boolean equals(Object obj) {}

    常用方法:

    add:添加元素

    size:获取元素个数

    contains:是否包含

    remove:移除

    iterator:迭代器对象

    2、LinkedHashSet:HashSet的子类,底层实现:双链式+哈希散列存储

    特点:不可重复且有序

    只是保证了添加顺序

    3、TreeSet<E>:底层实现:红黑二叉树

    要求元素必须可排序的

    注意:TressSet存储自定义类时,要求对应的类要么实现自然顺序,要么自定义比较器

    就是说:元素必须可排序,否则报异常

    常用方法:

    add:添加元素

    size:获取元素个数

    ceiling:获取大于等于指定值的最小元素

    floor:获取小于等于指定值的最大元素

    higher:获取大于指定值的最小元素

    lower:获取小于指定值的最大元素

    first:获取第一个元素

    last:获取最后一个元素

    pollFirst:获取并移除第一个元素

    pollLast:获取并移除最后一个元素

    java中的比较器接口:

    1、Comparable:自然顺序---对应的是TreeSet无参构造

    compareTo:实现排序的方法,返回数据:0表示元素相同,正数表示大于,负数表示小于

    2、Comparator:自定义比较器----对应的TreeSet(Comparator)

    compare:实现排序的方法

    Collections:集合工具类

    常用方法:

    sort:排序,要求元素可排序(自然顺序或自定义比较器)

    shuffle:随机进行交换

    数组和集合的相互转换

    Arrays.asList:数组--->集合

    toArray:集合----->数组

    匿名内部类格式:new 类名或接口名(){

    重写的方法

    };

    下周内容:

    Map:HashMap,TreeMap

    File

    I/O流

    字节和字符

    文件流

    缓冲流

    转换流

    对象流

    内存流

    数据流

    打印流

    随机读取文件类

    线程

  • 相关阅读:
    C# — WinForm TCP连接之服务器端
    Linq to SQL — Group by
    pytorch model()[] 模型对象类型
    git官网下载太慢解决方法
    财务分析
    python错题集
    SQL 开窗函数 头尾函数 first_value()/last value()不常用
    徐杨老师的公开课关于敏捷算法
    SQL 开窗函数:range和rows的区别
    SQL开窗函数 row_number(),dense_rank(), rank()
  • 原文地址:https://www.cnblogs.com/weigongcheng/p/5735914.html
Copyright © 2011-2022 走看看