kotlin 物件比較相等

2021-10-19 12:00:37 字數 875 閱讀 9089

在kotlin中,如何來比較物件相等?我們都知道比較相等,一般有2種概念:

值相等

引用位址相等

==比較基本資料型別相等,比如int,boole,string,其中string可以支援 == 或者equals()來比較相等

var  a=1

var b=1

a==b

// 字串比較.

private fun test1()

=== 三個等號,比較的是值和引用位址相等,一般使用者比較物件是否相等,重寫 equals,equals方法是基類any裡面的,any是所有類的爸爸

package kotlin

/** * the root of the kotlin class hierarchy. every kotlin class has [any] as a superclass.

* kotlin類層級中的根節點, kotlin中的任何類都是any的子類.

*/public open class any

物件比較相等,重寫equals和hashcode方法

class person(val name:string) 

}}

比較物件相等

val a = person("alex", 20)

val b = person("alex", 20)

println(a == b)

println(a === b)

列印結果:

true

false

物件相等比較

對於string型別而言,一般用 或者equales做相等比較,前者比較字串的引用,後者比較字串的值。字串常量的值儲存於常量池中,只要值相同,那麼引用的就是同乙個字串常量,也就是說,和equals效果一樣。字串物件儲存於堆中,不同的物件在堆上的記憶體位址是不一樣的。因此,建立兩個值相等的string...

物件的相等與比較

物件的相等與比較 近一年多來,拜託輕量級容器的流行,pojo的使用率也隨之上公升。pojo的功能很簡單,主要是用來在各模組之間傳遞資料。比如,有這麼乙個user類 public class user public int getid public void setname string name p...

比較物件或者json是否相等

function isequalobj obj1,obj2 else if object.prototype.tostring.call obj1 item object object else if obj1 item obj2 item return true 注意 for.of 與break ...