`

contains(), containsKey(), containsValue(), equals(), hashCode()

    博客分类:
  • Java
 
阅读更多
contains(), containsKey(), containsValue()

调用 equals() 方法来判断

对于 Object 类,
public boolean equals(Object obj)

   其比较规则为:当参数obj引用的对象与当前对象为同一个对象时,就返回true,否则返回false.
   所以,在默认情况下, equals() 和 == 等价,均比较引用值(即地址),除非那些已经重写 equals() 方法的类


在开发中,自定义类,如果要调用这些方法来判断,必须重写 equals() 和 hashCode(),否则,始终为 false
根据 equals(Object) 方法,两个对象是相等的,那么在两个对象中的每个对象上调用 hashCode 方法都必须生成相同的整数结果。
注意,在重写equals方法时,要注意满足离散数学上的特性
1、自反性   :对任意引用值X,x.equals(x)的返回值一定为true.
2 对称性:   对于任何引用值x,y,当且仅当y.equals(x)返回值为true时,x.equals(y)的返回值一定为tue;
3 传递性:如果x.equals(y)=true, y.equals(z)=true,则x.equals(z)=true
4 一致性:如果参与比较的对象没任何改变,则对象比较的结果也不应该有任何改变
5 非空性:任何非空的引用值X,x.equals(null)的返回值一定为false
分享到:
评论

相关推荐

    Java集合讲义大全.docx

    Map 接口继承自 Collection 接口,提供了一些特定的方法,例如,containsKey、containsValue 等。 常见的 Map 实现类有 HashMap 和 TreeMap。 * HashMap 是一个基于哈希表实现的 Map,提供了快速的查找和插入删除...

    简单的key value hashmap

    - `containsValue(V value)`: 检查给定的值是否存在于HashMap的任何键值对中。 - `remove(K key)`: 删除指定键的键值对。 - `size()`: 返回HashMap中键值对的数量。 - `clear()`: 清空HashMap中的所有键值对。 在...

    中软国际面试题.doc

    3. `Map`的`containsKey()`或`containsValue()`方法可能会受到`equals()`和`hashCode()`的影响,`containsKey()`依赖`equals()`检查键是否匹配,`containsValue()`则需要遍历值的列表,也可能用到`equals()`。...

    常用JAVA面试题库4

    - Hashtable包含contains方法,HashMap则将其替换为containsKey和containsValue方法,以避免混淆。 以上是关于Java基础和面试题目的解析,涵盖了类继承、构造器、线程同步、异常处理、位运算、对象传递、switch...

    java面试中常问的问题.docx

    - `HashMap`的`contains`方法被移除,改为了`containsValue`和`containsKey`。 - `Hashtable`继承自`Dictionary`类,`HashMap`实现了`Map`接口。 - `HashMap`方法不是同步的,`Hashtable`方法是同步的。 4. **...

    笔试面试(复习资料大全)Java笔试题_20071220.doc

    - HashMap移除了contains方法,改为了containsValue和containsKey,避免混淆。 - Hashtable继承自Dictionary类,HashMap则是Java 1.2引入的Map接口的一个实现。 2. **char型变量与中文汉字** - Java的char类型...

    Java容器简要介绍

    Map接口的API包括put()、get()、containsKey()、containsValue()、remove()等方法,以及keySet()、values()和entrySet()用于获取键、值和键值对的集合视图。 6. Map接口中的entrySet()返回的集合支持通过迭代器进行...

    Set和Map1

    5. **containsValue(Object value)**:判断Map中是否存在指定的值。 6. **isEmpty()**:检查Map是否为空。 7. **size()**:返回Map中键值对的数量。 8. **keySet()**:获取Map中所有键的Set视图,用于遍历。 9. **...

    Map实现类1

    - 主要方法:包括put、get、remove、containsKey、containsValue、size等,以及清空和复制Map的方法。 2. TreeMap - 数据结构:TreeMap使用红黑树(一种自平衡二叉查找树)来存储键值对,保证了插入、删除和查找...

    北大青鸟Java教程

    - Map接口:存储键值对,提供`put()`, `get()`, `remove()`, `containsKey()`, `containsValue()`等操作,以及keySet(), values(), entrySet()集合视图。 3. **实现类**:除了接口外,还有一些基础实现类,如...

    set,list,map区别与联系.docx

    - **containsKey()**和**containsValue()**:检查Map中是否存在指定的键或值。 5. **选择原则** - 如果需要保持元素的插入顺序,选择LinkedList或LinkedHashSet或LinkedHashMap。 - 对于快速查找,选择ArrayList...

    day04_Map 每日作业卷答案1

    - **containsKey()**和**containsValue()**:分别检查Map中是否包含指定的键或值。 - **size()**:返回Map中键值对的数量。 - **clear()**:清空整个Map。 - **isEmpty()**:检查Map是否为空。 在遍历Map时,可以...

    【Java基础笔记】集合.docx

    `containsValue(V value)`检查值是否存在,`size()`返回映射的大小,`isEmpty()`检查映射是否为空,`equals(Map)`比较映射是否相等,`keySet()`返回所有键的集合,`values()`返回所有值的集合,以及`entrySet()`返回...

    Java集合之HashMap用法详解

    HashMap提供了多种基本操作,包括put、get、containsKey、containsValue、remove、clear等。 * put操作:用于将键值对存储到HashMap中,例如`map.put(1, "Barcelona");`。 * get操作:用于根据键获取对应的值,例如...

    Java大数据面试常见问题.docx

    HashMap 把 Hashtable 的 contains 思路方法去掉了,改成 containsValue 和 containsKey,因为 contains 思路方法容易让人引起误解。Hashtable 继承自 Dictionary 类,而 HashMap 是 Java 1.2 引进的 Map interface ...

    java中map集合的用法

    - `containsValue(Object value)`: 检查Map是否包含指定的值。 - `remove(Object key)`: 移除与指定键关联的键值对。 - `size()`: 返回Map中键值对的数量。 - `clear()`: 清除Map中的所有元素。 - `keySet()`: 返回...

    黑马程序员java培训就业班笔记集合体系总结.docx

    - `containsValue(Object value)`: 检查Map中是否存在指定的值。 - `remove(Object key)`: 删除与给定键关联的键值对。 - `clear()`: 清空Map。 - `size()`: 获取Map中的键值对数量。 了解并熟练掌握这些集合...

    java-专业】最全-JAVA面试题

    HashMap是现代的Map实现,允许null键值,方法非同步,更高效,提供了containsValue和containsKey方法。 10. **Overload与Override**:Overload是方法签名(包括方法名和参数列表)的不同,可以改变返回类型;...

    Java大数据面试常见问题.pdf

    HashMap 把 Hashtable 的 contains 思路方法去掉了,改成 containsValue 和 containsKey,因为 contains 思路方法容易让人引起误解。 4. final, finally, finalize 的区别 final 用于声明属性、方法和类,分别表示...

Global site tag (gtag.js) - Google Analytics