• 集合拾遗


    1.Set

    HashSet如何保证元素的唯一性?

    是通过元素的两个方法:hashCode()和equals()

    如果元素的HashCode值相同,才会判断equals()是否为true

    如果元素的HashCode值不同,才会调用equals()

    对于判断元素是否存在,以及删除等操作,依赖的方法是元素的hashCode()和equals()方法

    先判断hashCode(),如果相等,再通过equals()判断

    ArrayList只依赖equals()

    2.TreeSet()存储自定义对象

    可以对Set集合中的元素进行排序,

    排序的第一种方式:

    元素必须实现Comparable接口,并覆写compareTo方法

    底层数据结构是二叉树

    保证元素唯一性的依据:

    compareTo方法return 0.

    排序的第二种方式:

    当元素自身不具备比较性时,或者,具备的比较性不是所需要的,这时就需要让集合自身具备比较性。

    将比较器作为参数传递给TreeSet的构造器。

    实现Comparator类,覆盖compare方法

    当两种排序方式都存在时,以比较器为主

    3.Collections

    工具类,里面的方法都是静态方法,用于操作集合

    Collections.sort(List<T> list)

    Collections.sort(List<T> list,Comparator comparator)

    Collections.max(List list)

    Collections.binarySearch(List<T> list)

    Collections.fill(List<T> list, T t);

    Collections.replaceAll(List<T> list, T ori ,T new)

    Collections.reverseOrder(Comparator cmp):比较器反转

    Collections.reverseOrder():比较器反转

    Collections.swap(List<T> list, int index1, int index2):元素替换

    Collections.shuffle(List <T> list):随机排列元集合中的元素

    4.Arrays 用于操作数组的工具类

    copyOfRange(byte[] original,int from, int to)

    Arrays.toString(int [] nums)

    Arrays.asList(int [] arr):将数组变成list集合

    将数组变成集合,不可以使用集合的增删方法,因为数组的长度是固定的

    如果数组中的元素都是对象,那么变成集合时,数组中的元素就直接转成集合中的元素

    如果数组中的元素都是基本数据类型,那么会将该数组作为集合中的元素存在

    集合转成数组

    String [] arr=list.toArray(new String[5]);

    集合变数组是为了限定对元素的操作

     

    可变参数一定要定义在参数列表的最后面

  • 相关阅读:
    转战Python
    spark
    idea的配置
    19年春第十六周学习
    19年春第十五周学习
    个人作业-最长英语链
    rpm dpkg 用法比较
    foxmail 无法下载同步邮件 error:00000001:lib(0):func(0):reason(1)
    date命令详解
    用cron服务自动运行脚本
  • 原文地址:https://www.cnblogs.com/lvjygogo/p/8729071.html
Copyright © 2020-2023  润新知