<分区>
我有一个模型列表(来自 Firestore 的 DocumentSnapshot
),它们有一个 id(字符串)。
我需要为它们中的每一个创建一个通知,它们可能很多(来自聊天的消息)并且我需要使用一个 int id 来分配给通知。
我需要使用他们的 String id,因为我可以收到该模型的更新版本,所以我想更新通知前面的精确模型。
什么是解决方案?
<分区>
我有一个模型列表(来自 Firestore 的 DocumentSnapshot
),它们有一个 id(字符串)。
我需要为它们中的每一个创建一个通知,它们可能很多(来自聊天的消息)并且我需要使用一个 int id 来分配给通知。
我需要使用他们的 String id,因为我可以收到该模型的更新版本,所以我想更新通知前面的精确模型。
什么是解决方案?
最佳答案
无法从无限组字符串中生成唯一 int id。 但是您可以为您的目的使用一个好的散列函数——在大多数情况下它就足够了。请考虑使用比普通 #hashCode 实现更好的东西。我建议你看看https://github.com/google/guava/wiki/HashingExplained
并至少使用 murmur3 算法。 代码 fragment 如下所示:
import com.google.common.base.Charsets;
import com.google.common.hash.Hashing;
public class Main {
public static void main(String[] args) {
System.out.println(
Hashing.murmur3_32()
.newHasher()
.putString("Some Sting", Charsets.UTF_8)
.hash().asInt());
}
}
关于java - 从 String 创建唯一 id (int),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48023308/