java - 从 String 创建唯一 id (int)

标签 java android string integer android-notifications

<分区>

我有一个模型列表(来自 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/

相关文章:

Android PayPal SDK 和 fragment

javascript - 使用四元数的设备方向

r - 需要带有 GREP 的 R 代码从包含特殊字符的字符串中提取数字

ruby - 如何在出现特定单词后添加换行符

java: ActionListener 变量包含修改自身的操作 - 'Variable might not have been initialized'

Android:如何更改 EditText 字段中的文本大小?

java - Java程序终止而不是遍历选项

java - 返回减去特定字符之间的特定字符的字符串

java - IntelliJ IDEA hibernate

java - 响应编码