首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Java比较这个类和那个类是否相等

Java比较这个类和那个类是否相等
EN

Stack Overflow用户
提问于 2013-05-10 03:04:18
回答 1查看 409关注 0票数 2

我的任务是重写equals()方法。我对使用Stack12<E> that = (Stack12<E>)o;o instanceof Stack12有一些顾虑。我想知道他们是不是很糟糕,特别是我在for循环中使用that的感觉有点不对劲。

有没有其他方法可以将这个类与其他对象进行比较?或者我的比较方法足够健壮吗?

代码语言:javascript
运行
AI代码解释
复制
  public boolean equals(java.lang.Object o){
  if(o == this) return true;
  if(o == null || !(o instanceof Stack12)){
     return false;
  }

  Stack12<E> that = (Stack12<E>)o;
  if(this.size != that.size || this.capacity != that.capacity ){
     return false;
  }
  for(int i = 0; i < this.size; i++){
     if( that.stack[i] != this.stack[i] ){
        return false;
     }
  }
  return true;
 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-10 03:10:15

我要补充的一点是,每当您覆盖equals(...)时,您也会希望覆盖hashCode()。我同意,看到instanceof被过度使用会让我担心代码的味道,但我认为在这种情况下,你别无选择,只能使用instanceof。至于转换为泛型类型,我可能是错的,但在运行时,泛型确实不存在,所以它可能是没有意义的。

我看到的一个潜在的主要问题是,您在for循环中使用了==。如果堆栈数组使用对象,则应在循环内使用equals(...)。您的类是泛型的这一事实表明堆栈数组确实包含对象,但我不确定,因为我们看不到这一点。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16474530

复制
相关文章
java比较字符串是否相等「建议收藏」
java用equals方法比较的是字符串的内容是否相同,先判断地址是否相等,相等返回true;比较类型是否一样,不一样,返回false。
Java架构师必看
2022/01/18
1.5K0
java比较字符串是否相等「建议收藏」
Java 两个数组比较内容是否相等
有两个数组,前提是数组对象是一样的。需要比较这两个数组中对象的值是否一致?需要考虑对象的顺序。如果对象里面在嵌套一个数组怎么处理。
赵哥窟
2022/07/08
2.2K0
Java的Integer和Integer比较相等
引用数据类型对比需要用equals()方法对比相等 因Integer存在缓存, 在Integer的值不超过-128~127之间==对比为true, 若超过则会new一个Integer对象==结果为false;
Java架构师必看
2021/11/29
1.6K0
[golang]golang EqualFold 字符串比较是否相等
[golang]golang EqualFold 字符串比较是否相等 EqualFold 源码 strings.EqualFold 是忽略大小写的比较,返回bool // EqualFold reports whether s and t, interpreted as UTF-8 strings, // are equal under Unicode case-folding, which is a more general // form of case-insensitivity. func Equa
landv
2020/06/29
6.9K0
Java 比较两个字符串内容是否相等
最近在做项目时,编写SpringBoot后台接口时遇到一个小问题,就是当比较两个String对象内容是否相等时,我第一次使用==没有得到预想到的结果,改成String的equals()方法就OK了。由于一直使用C和C++比较多,C++种的std::string类比较两个字符串内容是否相等时可以直接使用==操作符重载运算符。 下面是根据职位名称获取职位信息以及获取所有职位信息的后台接口代码:
ccf19881030
2020/09/22
8K0
Java类库之比较器(重点)
如果现在要想为一组对象进行排序,那么必须有一个可以区分出对象大小的关系操作,而这个操作在Java之中就是利用比较器完成的。常用比较器:Comparable(核心) 如果要为对象指定比较规则,那么对象所在的类必须实现Comparable接口,下面首先来看一下这个接口的定义:
葆宁
2019/04/18
8090
Java类库之比较器(重点)
java的Set类和Hashset类
集合 的体系: ------------| Collection 单例集合的根接口 ----------------| List  如果是实现了List接口的集合类,具备的特点: 有序,可重复。  -------------------| ArrayList  ArrayList 底层是维护了一个Object数组实现的。 特点: 查询速度快,增删慢。 -------------------| LinkedList LinkedList 底层是使用了链表数据结构实现的, 特点: 查询速度慢,增删快。 -------------------| Vector(了解即可)  底层也是维护了一个Object的数组实现的,实现与ArrayList是一样的,但是Vector是线程安全的,操作效率低。   ----------------| Set  如果是实现了Set接口的集合类,具备的特点: 无序,不可重复。 -------------------| HashSet  底层是使用了哈希表来支持的,特点: 存取速度快.  -------------------| TreeSet   如果元素具备自然顺序 的特性,那么就按照元素自然顺序的特性进行排序存储。
用户7886150
2021/04/23
7490
java中String的相等比较
首先贴出测试用例: 1 package test; 2 3 import org.junit.Test; 4 5 /** 6 * Created by Administrator o
Ryan-Miao
2018/03/13
1.5K0
java中String的相等比较
使用Java中Collections工具类和Comparator比较器使用
Collections工具类 介绍 Collections是单列集合的工具类,里面所有的方法都是静态方法,可以对集合进行一些操作。 常用方法(常用方法) 方法 说明 static void shuf
用户9006224
2022/12/21
4650
使用Java中Collections工具类和Comparator比较器使用
学生类定义(类和对象)Java
面向对象程序设计的中心就是把客观事物抽象为程序世界里一段段代码,校园里的主体是学生,泛泛的学生包含很多属性,比如姓名、学号、所在学院、专业、性别、住址、联系电话。。。。。。等等,有这些属性,需要操纵它们的动作,比如读取姓名、设置姓名、读取学号、设置学号。。。。。。等等,这就是我们课堂说的属性和方法,对于属性和方法,我们又有访问控制方式限制,标示为public、private、protected等,根据以上的信息,请给出一个完整的学生类定义:Student,并测试输出n个该类对象的各项属性值。
叶茂林
2023/07/30
2500
长方柱类(类和对象)Java
编写基于对象的程序,求长方柱(Bulk)的体积。数据成员包括长(length)、宽(width)、高(heigth)、体积,要求用成员函数实现下面的功能:
叶茂林
2023/07/30
1730
初识JAVA:Java类库之比较器(重点)
如果现在要想为一组对象进行排序,那么必须有一个可以区分出对象大小的关系操作,而这个操作在Java之中就是利用比较器完成的。常用比较器:Comparable(核心) 如果要为对象指定比较规则,那么对象所在的类必须实现Comparable接口,下面首先来看一下这个接口的定义:
葆宁
2022/05/06
5340
初识JAVA:Java类库之比较器(重点)
聚类算法比较
算法:聚类算法比较是包括MiniBatchKMeans、AP聚类、MeanShift、谱聚类、Ward聚类、层次聚类、DBSCAN聚类、Birch聚类和高斯混合模型聚类算法的参数被优化到最佳聚类的结果比较。
裴来凡
2022/05/29
6140
聚类算法比较
Java 类和对象
上 Java 语言的第一课,相信很多老师都会解释一句话就是 Java 是一个纯面向对象的语言。
HoneyMoose
2021/04/26
7770
Java 类和对象
Java对象和类
Java作为一种面向对象语言,支持以下基本概念 多态,继承,封装,抽象,类,对象,实例,方法,重载。 本节我们重点研究对象和类的概念。 对象,对象是类的一个实力,有状态和行为,类如,一条狗是一个对象,它的状态有颜色,名字,品种;行为有:摇尾巴,叫,吃等 类,类是一个模板,它描述一类对象的行为和状态。 Java中的对象, 现在让我深入了解什么是对象,看看周围真实的世界,回发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。 拿一条狗来举例,它的状态有名字,品种,颜色,行为有叫,摇尾巴和跑。
landv
2018/05/24
9070
Java 对象和类
你知道这就是一个类嘛?你知道这是一个类的实例嘛?你记住这是一个抽象类!。。。(你说什么?。。。QAQ,嘤嘤嘤)
Lokinli
2023/03/09
5010
Java 类和对象
让我们深入了解什么是类,看看周围真实的世界,会发现身边有很多类,例如小猫等等,这些类都有自己的模板或蓝图。
久绊A
2023/03/24
5810
java对象和类
下图中男孩(boy)、女孩(girl)为类(class),而具体的每个人为该类的对象(object):
taoli
2022/10/08
6150
java对象和类
java对象和类
现在让我们深入了解什么是对象。看看周围真实的世界,会发现身边有很多对象,车,狗,人等等。所有这些对象都有自己的状态和行为。
用户7657330
2020/08/14
5960
Java 类和对象
class Person { String name; int age; public Person(){}//构造函数,与类同名,没有返回值 public Person(String name, int age){ this.name = name; this.age = age; } String talk() { return "i am " + name + ", age " + age;
Michael阿明
2021/09/06
4720

相似问题

Jquery单击这个或那个并切换类

23

不带这个、那个、自身等的JavaScript类

10

java TreeSet:比较和相等

53

Java:调用类类型数组来测试是否相等

14

Java -比较类?

40
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档