zoukankan      html  css  js  c++  java
  • 集合拾遗

    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]);

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

     

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

  • 相关阅读:
    Java实现蓝桥杯日志统计
    Java实现蓝桥杯日志统计
    Java实现算法竞赛入门经典例题-蚂蚁
    Java实现算法竞赛入门经典例题-蚂蚁
    Java实现算法竞赛入门经典例题-蚂蚁
    Java实现偶数矩阵(Even Parity, UVa 11464)
    Java实现偶数矩阵(Even Parity, UVa 11464)
    Java实现偶数矩阵(Even Parity, UVa 11464)
    我最喜欢的《远程控制工具》
    CentOS环境下,gdb调试中出现:Missing separate debuginfos, use: debuginfo-install.....的问题
  • 原文地址:https://www.cnblogs.com/lvjygogo/p/8729071.html
Copyright © 2011-2022 走看看