zoukankan      html  css  js  c++  java
  • 00083_判断集合元素唯一的原理

    1、ArrayList的contains方法判断元素是否重复原理

      ArrayList的contains方法会使用调用方法时,传入的元素的equals方法依次与集合中的旧元素所比较,从而根据返回的布尔值判断是否有重复元素。此时,当ArrayList存放自定义类型时,由于自定义类型在未重写equals方法前,判断是否重复的依据是地址值,所以如果想根据内容判断是否为重复元素,需要重写元素的equals方法。

    2、HashSet的add/contains等方法判断元素是否重复原理

      (1)HashSet的add/contains等方法判断元素是否重复原理Set集合不能存放重复元素,其添加方法在添加时会判断是否有重复元素,有重复不添加,没重复则添加;

      (2)HashSet集合由于是无序的,其判断唯一的依据是元素类型的hashCode与equals方法的返回结果。规则如下:

      先判断新元素与集合内已经有的旧元素的HashCode值;

      如果不同,说明是不同元素,添加到集合;

      如果相同,再判断equals比较结果。返回true则相同元素;返回false则不同元素,添加到集合。

      (3)所以,使用HashSet存储自定义类型,如果没有重写该类的hashCode与equals方法,则判断重复时,使用的是地址值,如果想通过内容比较元素是否相同,需要重写该元素类的hashcode与equals方法。

  • 相关阅读:
    奇数阶魔方问题
    《DSP using MATLAB》示例9.3
    《DSP using MATLAB》示例9.2
    《DSP using MATLAB》示例9.1
    找个目标很重要
    《DSP using MATLAB》示例Example 8.30
    《DSP using MATLAB》示例Example 8.29
    《DSP using MATLAB》示例Example 8.28
    《DSP using MATLAB》示例Example 8.27
    《DSP using MATLAB》示例Example 8.26
  • 原文地址:https://www.cnblogs.com/gzdlh/p/8094791.html
Copyright © 2011-2022 走看看