gpt4 book ai didi

java - 效率: UUID vs int comparison in Java

转载 作者:行者123 更新时间:2023-12-01 08:47:46 25 4
gpt4 key购买 nike

如果这是一个太简单的问题,请原谅。

考虑下面的类:

public class Asset {
private int id;
private UUID uuid;
}

如果我要根据Id检查大量Asset对象的相等性,在性能方面,id和uuid哪个更有效?

最佳答案

两者渐近都是常数时间O(1) 比较。

UUID 维护最高有效 64 位最低有效 64 位并比较它们。这是 equals() 方法。

public boolean equals(Object obj) {
if ((null == obj) || (obj.getClass() != UUID.class))
return false;
UUID id = (UUID)obj;
return (mostSigBits == id.mostSigBits &&
leastSigBits == id.leastSigBits);
}

整数相等也是常数时间。

public boolean equals(Object obj) {
if (obj instanceof Integer) {
return value == ((Integer)obj).intValue();
}
return false;
}

但需要注意的是,UUID比较包括2个long类型字段的比较。

编辑:感谢 Chai T. Rex 提到有关 int
的问题因此两个 int 的相等性又是简单的(==)和常数时间。

关于java - 效率: UUID vs int comparison in Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42571677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com