草庐IT

hash_equals

全部标签

java - 有什么可以警告我不要使用 type.equals(incompatibleType) 吗?

是否有任何工具可以针对以下类型的代码警告我:if(someClass.equals(someString))例如:if(myObject.getClass().equals(myClassName))这样的东西在Java中是合法的(等于一个对象)但是永远不会计算为真(一个类永远不能等于一个字符串)所以几乎可以肯定是一个错误。我检查了Eclipse、FindBugs和PMD,但似乎都不支持此功能? 最佳答案 是的,IntelliJIDEA有这样的检查,我相信它是默认启用的。它标记以下内容:Classclazz=String.class

java - 为什么 String.equals 对于不相同(但相等)的 String 对象要慢得多?

我正在研究String.equals()是否真的很糟糕,并且在尝试对其进行一些基准测试时遇到了一些令人惊讶的结果。使用jmh,我写了一个简单的测试(最后是代码和pom),看看该函数可以在1秒内运行多少次。BenchmarkModeSamplesScoreScoreerrorUnitsc.s.SimpleBenchmark.testEqualsInternthrpt5698910949.71047115846.650ops/sc.s.SimpleBenchmark.testEqualsNewthrpt5529118.77421164.872ops/sc.s.SimpleBenchmark

java - 循环条件 : why "not-equal" instead of "lower-than"

我被分配到一个Android-Java(实时游戏)项目,该项目具有大量(部分遗留)代码库。我看到的大部分循环都是这样的(这里mjk通常是Java数组):intcount=mjk.length;for(inti=0;i!=count;++i){//Stuffdealingwithmjk[i]}我通常写这样的循环:intcount=mjk.length;for(inti=0;i知道为什么原作者(到目前为止我无法联系到他)使用以前的表格吗?在C++中常见吗?我问这个的实际原因是JIT优化:据我所知,Android优化循环(归纳变量、不变量、范围检查迁移到循环序言等),我想知道不等于是否可以阻

unordered-------Hash

✅主页:我的代码爱吃辣📃知识讲解:数据结构——哈希表☂️开发环境:VisualStudio2022💬前言:哈希是一种映射的思想,哈希表即使利用这种思想,在查找上进行很少的比较次数就能够将元素找到,非常的高效,在一定程度上,效率比红黑树还要强,因此在C++11中,STL又提供了4个unordered系列的关联式容器,他们的底层就是哈希。目录一.unordered系列关联式容器1. unordered_map1.1unordered_map的构造1.2unordered_map的容量 1.3unordered_map的迭代器1.4unordered_map的元素访问1.5unordered_map

java - 在比较器接口(interface)中使用 equals() 方法?

equals()方法可用于Object类中的所有java集合类。Comparator接口(interface)中也声明了这个方法,那么在Comparator中声明这个方法的目的是什么?在什么情况下使用它以及如何使用它? 最佳答案 whatisthepurposeofdeclaringthismethodinComparator?我认为这是设计者强调Comparator.equals()强加一些additionalrequirements事实的方式。在任何实现该接口(interface)的类上:Additionally,thismet

java - 使用 compareTo 实现 equals 方法

一般问题:在Java中实现默认equals方法的重写时,对于简单地使用已经实现的compareTo方法与将独立逻辑写入其中,我应该注意什么?等于方法?我注意到有人在另一个问题中提到foo.equals((String)null)返回false而String.compareTo((String)null)抛出NullPointerException。是什么让这些不一致的结果成为理想的功能?示例equals方法:@Overridepublicbooleanequals(Objectobj){if(obj!=null&&objinstanceofMyClass){MyClassmsg=(My

Redis数据结构:Hash类型全面解析

Redis,作为一个开源的、内存中的数据结构存储系统,以其出色的性能和灵活的数据类型,广泛应用于缓存、消息队列、发布订阅系统等多种场景。在Redis的五种基本数据类型中,Hash类型是一种非常重要的数据类型。它可以存储键值对的集合,且能够用小于1毫秒的时间复杂度进行添加、删除、更新和查找操作,因此在实际应用中有着广泛的用途。在接下来的文章中,我将详细介绍Redis的Hash类型,包括它的内部实现、主要特性、常用命令以及应用场景。无论你是刚接触Redis的新手,还是已经有一定经验的开发者,我相信你都能从这篇文章中学到一些有用的知识。让我们一起深入了解Redis的Hash类型,探索它的魅力所在。文

java为什么equals方法的入参应该是Object

我正在阅读一本关于数据结构的书。目前我在图上,下面的代码是图的顶点部分。classVertex{//bunchofmethodspublicbooleanequals(Objecto){//somecode}}当我尝试实现这个equals方法时,我的编译器提示没有检查参数的类型,只允许向它发送任何对象。对我来说,为什么该参数不应该是Vertex而不是Object也确实有点奇怪。作者这样做是有原因的还是这是一些错误或过时的例子? 最佳答案 @Overridepublicbooleanequals(Objectobj){if(!(obj

java - Guava 与 Apache Commons Hash/Equals 构建器的对比

我想知道Guava与ApacheCommons在equals和hashCode构建器方面的主要区别是什么。等于:Apache公地:publicbooleanequals(Objectobj){if(obj==null){returnfalse;}if(obj==this){returntrue;}if(obj.getClass()!=getClass()){returnfalse;}MyClassother=(MyClass)obj;returnnewEqualsBuilder().appendSuper(super.equals(obj)).append(field1,other.f

java - 我们应该总是重写 equals 吗?

自己写类的时候,是否总是需要重写equals(Objecto)?如果我不这样做,它会自动检查所有字段是否相同吗?或者它只是检查两个变量是否指向同一个对象? 最佳答案 如果一个人正在编写一个要以某种方式比较其对象的类,那么应该覆盖equals和hashCode方法。不提供显式的equals方法将导致从父类(superclass)继承equals方法的行为,并且在父类(superclass)是Object的情况下类,则它将是Object的JavaAPI规范中规定的行为。类。可以在Object的文档中找到提供equals方法的一般契约。类