- 浏览: 428992 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (170)
- java (77)
- javascript (5)
- jsp (1)
- servlet (6)
- struts (8)
- hibernate (3)
- spring (4)
- ajax (5)
- jquery (3)
- apache cxf (0)
- ext.js (1)
- hadoop (0)
- android (0)
- html5 (2)
- linux (5)
- flex (1)
- tomcat (1)
- jboss (0)
- nginx (0)
- mysql (16)
- sql server (3)
- oracle (4)
- div+css (0)
- mybatis (4)
- design patterns (22)
- xml (2)
- postgresql (3)
- velocity (1)
- freemarker (1)
- kendo-ui (2)
- ibatis (1)
- socket (1)
- C and C++ (1)
- C# (2)
- 程序设计----算法 (0)
- jersey (1)
- dd (0)
- perl (1)
- shell (0)
最新评论
-
书策稠浊:
兄弟,这tm是Java?
java调用百度地图和谷歌地图 -
fengyunlouyanyu:
jquery----删除指定id的div下的img -
yangjianzhouctgu:
Neoman 写道hi,我看你引入了kendo.web.min ...
kendo-ui中kendoGrid的用法 -
Neoman:
hi,我看你引入了kendo.web.min.js 这个js, ...
kendo-ui中kendoGrid的用法 -
yangjianzhouctgu:
llscp 写道这是JS吧...对的呀
java调用百度地图和谷歌地图
Student.java代码如下:
Department.java代码如下:
Test.java代码如下:
运行结果:
package com.bean; public class Student { int num; String name; public Student(int num,String name) { this.num = num; this.name = name; } public boolean equals(Object obj){ if(this == obj){ return true; } if(obj instanceof Student){ Student s = (Student)obj; if(this.name.equals(s.name)&&(this.num==s.num)){ return true; } } return false; } public int hashCode(){ return num*name.hashCode(); } public String toString(){ return num+":"+name; } }
Department.java代码如下:
package com.bean; /** * 设计这个类的原因是想让两个对象的hashCode相同 * @author yangjianzhou * */ public class Department { private int number; private int id; public Department(int number,int id){ this.number = number; this.id = id; } public int hashCode(){ return id+number; } public boolean equals(Object obj){ if(this == obj){ return true; } if(obj instanceof Department){ Department dept = (Department)obj; if(this.number == dept.number&&this.id==dept.id){ return true; } } return false; } }
Test.java代码如下:
package com.test; import java.util.HashSet; import java.util.Iterator; import java.util.Set; import com.bean.Department; import com.bean.Student; /** * equals()与hashcode() * @author yangjianzhou * 两个对象 obj1和obj2,如果obj1.equals(obj2)返回true,那么obj1与obj2的hashcode()方法返回值一定相同。 * 但是如果obj1和obj2的hashcode()方法返回值相同,则obj1.equals(obj2)返回值不一定为true。 * 如果obj1和obj2的hashcode()不同,那么obj1.equals(obj2)一定返回false * 向set里面添加元素时,是根据hashcode和equals来添加的,如果hashcode相同,就判断equals,如果equals相同,就不重复添加 * 如果quals不同,就添加 */ public class Test { public static void main(String[] args) { testEqualsAndHashcode(); testHashSet(); testHashCode(); } public static void testEqualsAndHashcode() { String s1 = new String("1234"); String s2 = new String("1234"); System.out.println(s1==s2); System.out.println(s1.equals(s2)); System.out.println(s1.hashCode()); System.out.println(s2.hashCode()); Set set = new HashSet(); set.add(s1); set.add(s2); System.out.println(set.size()); System.out.println("========================"); } public static void testHashSet(){ HashSet hs = new HashSet(); Student s1 = new Student(1, "zhangsan"); Student s2 = new Student(2, "lisi"); Student s3 = new Student(3, "wangwu"); Student s4 = new Student(1, "zhangsan"); hs.add(s1); hs.add(s2); hs.add(s3); hs.add(s4); System.out.println(s1.hashCode()); System.out.println(s4.hashCode()); Iterator it = hs.iterator(); System.out.println(hs.size()); while(it.hasNext()){ System.out.println(it.next()); } System.out.println("========================"); } /** * 这个方法验证了向set里面添加元素的原则为 * 1.先验证hashCode * 2.在验证equals * 3.只有通过以上两个验证之后就会将该元素添加到set里面 */ public static void testHashCode(){ HashSet set = new HashSet(); Department dept1 = new Department(1, 2); Department dept2 = new Department(2, 1); set.add(dept1); set.add(dept2); System.out.println(set.size()); System.out.println("========================"); } }
运行结果:
false true 1509442 1509442 1 ======================== 1149414639 1368554401 4 1:zhangsan 2:lisi 1:zhangsan 3:wangwu ======================== 2 ========================
发表评论
-
spring boot应用测试框架介绍
2018-07-19 14:44 753个人原创博客:spring boot应用测试框架介绍 -
可执行jar包的配置与运行
2017-06-04 19:42 1009spring boot项目可以以jar包的形式执行运行。s ... -
多线程并发
2016-05-21 23:49 0Splitter.on('|').trimResults(). ... -
jdk动态代理实现原理
2016-05-09 23:12 775jdk的动态代理即使用反射来实现,具体由Proxy、Invoc ... -
spring常见注解
2016-05-01 23:33 12321.Autowired 通过spring的依赖注入功能来 ... -
spring常见配置作用
2016-04-29 23:08 937一般应用中常见spring的 ... -
数据来自两个系统时的内存分页算法
2016-04-24 23:12 844业务数据来自a-app与b-app,其中a-app中数据的业务 ... -
linux下java web开发环境搭建
2016-04-10 14:09 1135一般的java web开发涉及到的开发工具有:jdk、tomc ... -
linux下md5sum和DigestUtils.md5Hex的关系
2015-12-19 22:30 8527本文对linux下md5sum命令和java中DigestUt ... -
基于jersey的web service
2015-11-22 22:55 1012本文是基于jersey的web service 的两个小例子, ... -
面试总结----spring
2015-05-19 22:17 912spring在面试中经常被 ... -
面试总结----多线程
2015-05-18 22:10 902面试过程中,多线程被问到的概率非常大,差不多都会问的。 下面 ... -
面试总结----java虚拟机
2015-05-17 23:20 742在面试过程中,java虚拟机被问到的概率非常大,应该是每场面试 ... -
面试总结----java集合
2015-05-17 11:57 677春节刚过,打算换一份工作,于是就开始了一段准备面试的生活,准备 ... -
json串与对象之间转换的几种实现方式
2015-01-24 18:56 1878这里使用了gson,fastjson,jackson,json ... -
google关于事件的生产者消费者模式实现例子
2015-01-24 11:28 977google使用生产者/消费者模式实现了事件的产生传播处理过程 ... -
图形化显示---冒泡排序
2014-12-05 22:17 918代码: package com.thread.singal ... -
多线程----wait/notify
2014-11-06 22:06 688线程同步:两个线程依次对同一变量进行操作。 packag ... -
多线程-----阻塞队列
2014-11-05 22:43 851使用一个线程将一个指定目录下面的所有文件放在一个阻塞队列中,用 ... -
迷宫的最短路径
2014-08-19 00:31 3765代码如下: package com.chapterO ...
相关推荐
在Java编程语言中,`equals()` 和 `hashCode()` 方法是Object类中的两个核心方法,所有类都默认继承自Object类。这两个方法在处理对象比较和集合操作时起着至关重要的作用。当我们创建自定义类并需要对对象进行精确...
"关于Object中equals方法和hashCode方法判断的分析" 在 Java 中,Object 类提供了两个重要的方法:equals 方法和 hashCode 方法。这两个方法都是用于比较两个对象是否相等的,但它们的实现机理和作用域却有所不同。...
在Java编程语言中,`equals()`和`hashCode()`方法是对象的基本组成部分,它们主要用于对象的比较和存储。这两个方法在`java.lang.Object`类中定义,因此所有的Java类都默认继承了这两个方法。然而,根据具体的应用...
本文还介绍了定义对象的相等性、实施equals()和hashCode()的需求、编写自己的equals()和hashCode()方法。通过统一定义equals()和hashCode(),可以提升类作为基于散列的集合中的关键字的使用性。
深入理解equals和hashCode方法 equals和hashCode方法是Java中Object类提供的两个重要方法,对以后的学习有很大的帮助。本文将深入剖析这两个方法,帮助读者更好地理解和使用它们。 equals方法 equals方法是用于...
其中,equals和hashCode方法是Java容器集合中两个非常重要的方法,本文将详细介绍这两个方法,并结合ArrayList、Vector和LinkedList三个常见的容器集合。 一、equals方法 equals方法是Java中用于比较两个对象是否...
1.概述 2.为什么重写equels方法要重写hashcode方法 3.例子
equals 方法和 hashCode 方法是 Java 语言中两个重要的方法,它们都是在 Object 类中定义的。equals 方法用于比较两个对象是否相等,而 hashCode 方法用于返回对象的哈希码。 在 Java 的 Object 类中,equals 方法...
Java中的equals和hashCode方法是两个非常重要的方法,它们都是Object类中的方法。在实际开发中,正确地重写这两个方法对于确保程序的正确性和性能至关重要。下面,我们将详细地介绍Java重写equals及hashCode方法的...
Object 类的 equals 和 hashCode 方法的重要性与实现 在 Java 编程语言中,Object 类是所有类的父类,但是在实际开发中,我们往往需要重写 Object 中的 equals 和 hashCode 方法,以便正确地比较对象的逻辑内容,而...
equals()和hashcode()这两个方法都是从object类中继承过来的。当String 、Math、还有Integer、Double。。。。等这些封装类在使用equals()方法时,已经覆盖了object类的equals()方法.
在Java编程语言中,`equals()` 和 `hashCode()` 方法是两个非常重要的成员,尤其是在处理对象比较和集合操作时。这两个方法通常与`Object`类中的默认实现相关联,但为了在实际开发中实现正确的对象比较和哈希表操作...
在Java编程语言中,`equals()`, `hashCode()` 和 `toString()` 是三个非常重要的方法,它们主要用于对象的比较、哈希存储以及打印对象信息。这三个方法是Java对象的基础特性,对于理解和开发高质量的Java程序至关...
"Java中equals、hashcode和==的区别" Java 中 equals、hashcode 和==的区别是 Java 编程语言中一个经常遇到的问题。这三个概念都是用来比较对象的,但是它们之间存在着本质的区别。 首先,==号是Java中的一个...
重写equals()、hashcode()和compareTo()方法是非常重要的,它可以使我们的程序更加高效、可靠和灵活。在实际开发中,我们需要根据具体情况来决定是否需要重写这些方法,并遵守相关的规则,以避免出现意想不到的结果...
在Java编程语言中,`equals()` 和 `hashCode()` 方法是Object类中定义的基本方法,所有类都默认继承自Object类,因此每个Java对象都有这两个方法。这两个方法在处理集合类,尤其是Set接口的实现(如HashSet)时起着...
EqualsVerifier可用于Java单元测试中,以验证是否满足类中equals和hashCode方法的约定。 Maven坐标为: < dependency> < groupId>nl.jqno.equalsverifier</ groupId> < artifactId>equalsverifier</ artifactId> ...
Java中的equals()和hashCode()方法详解 Java中的equals()和hashCode()方法是两个重要的方法,它们都是从Object类中继承过来的。equals()方法用于比较两个对象的值是否相等,而hashCode()方法用于计算对象的哈希码。...
在Java编程语言中,`hashCode()`和`equals()`方法是非常重要的概念,它们不仅对于深入理解Java内存管理至关重要,也是实现自定义类的关键部分之一。本文将详细介绍这两个方法的工作原理、使用场景以及它们之间的关系...
在Java编程语言中,`equals()`和`hashCode()`方法是两个非常重要的概念,尤其是在处理对象比较和容器(如HashMap和HashSet)操作时。这两个方法在Java的类库中有着核心地位,尤其是对于类实例的比较和存储。接下来,...