• 【幻化万千戏红尘】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流

    字节和字符

    文件流

    缓冲流

    转换流

    对象流

    内存流

    数据流

    打印流

    随机读取文件类

    线程

  • 相关阅读:
    Tiny_4412的NFS挂载
    tiny4412学习一:编译uboot,体验裸机
    开通博客,记录历程,开启新的征程
    mysql 多表联合做运算(求俩点的距离)
    golang gin框架使用图形验证码
    js rgb和16进制相互转换
    [转载] Centos7的安装、Docker1.12.3的安装,以及Docker Swarm集群的简单实例
    openstack golang sdk使用
    sendcloud golang 发送短信 示例代码
    Harbor配置https,并安装内容信任插件(notary)
  • 原文地址:https://www.cnblogs.com/weigongcheng/p/5735914.html
Copyright © 2020-2023  润新知