zoukankan      html  css  js  c++  java
  • equals和hashcode

    1.equals相同,其hashcode必然相同

    2.equals是比较两个内容是否相同;==是用来判断两个对象是否是同一个对象。

    3.默认的hashcode 是根据内存地址计算

     1 package text;
     2 import java.util.ArrayList;
     3 import java.util.List;
     4 import java.util.HashMap;
     5 import java.util.Map;
     6 
     7 
     8 public class TestEquals{
     9     public static void main(String[] args){
    10         List list=new ArrayList();//ArrayList是有序可重复的,equals比较
    11         String s1=new String("aaa");
    12         String s2=new String("aaa");
    13         list.add(s1);
    14         list.add(s2);
    15         System.out.println(list.size());
    16         
    17         Map map=new HashMap();//底层实现是数组+链表。数组中的位置由hashcode来确定,键不能重复
    18         //键不能重复
    19         map.put(s1,"AAA");//aaa--->AAA
    20         map.put(s2,"BBBBBBB");//aaa---->BBBBBBBB
    21         System.out.println(map.get("aaa"));//键相同的时候,表示在数组中(桶)的位置相同,
    22         //(hashcode相同)。然后在比较链表中键equals,当相同时,后面的值就会覆盖前面的值。
    23     }
    24 }
    1 运行结果:
    2 2
    3 BBBBBBB
  • 相关阅读:
    [JavaScript]编写一份会动的简历
    Vue.js 创建一个 CNODE 社区(1)
    hdu 2051
    hdu 2050
    hdu 2048
    赫夫曼编码
    R语言的学习(四)
    R语言的学习(三)
    R语言的学习(二)
    R语言的学习(一)
  • 原文地址:https://www.cnblogs.com/qingsheng/p/9135585.html
Copyright © 2011-2022 走看看