Java从无序的对象/值集/列表生成唯一的id

Java从无序的对象/值集/列表生成唯一的id,java,for-loop,collections,unique,identification,Java,For Loop,Collections,Unique,Identification,下面是scanerio 如何从给定的无序集合/对象集(具有自己的UID)生成唯一id(字符串/数字) 如何确保生成的id始终相同,即使集合/集合中对象的顺序发生变化 我正在处理多组对象,每个组都需要一个uid,以表示其中存在的特定对象,而不管对象的顺序如何,希望它有意义,提前感谢您的帮助。鉴于可能对象的数量非常有限,您可以轻松地做到这一点。给每个对象一个2(1、2、4、8、16等)的幂的值,然后,对于集合,只需对集合中对象的值求和。结果应该适合32位整数。您的方法是什么?假设您有一个对象a,它由

下面是scanerio

  • 如何从给定的无序集合/对象集(具有自己的UID)生成唯一id(字符串/数字)

  • 如何确保生成的id始终相同,即使集合/集合中对象的顺序发生变化


  • 我正在处理多组对象,每个组都需要一个uid,以表示其中存在的特定对象,而不管对象的顺序如何,希望它有意义,提前感谢您的帮助。

    鉴于可能对象的数量非常有限,您可以轻松地做到这一点。给每个对象一个2(1、2、4、8、16等)的幂的值,然后,对于集合,只需对集合中对象的值求和。结果应该适合32位整数。

    您的方法是什么?假设您有一个对象a,它由不同的对象(集合)组成。要检查对象A是否包含某个对象,您必须对整个集合进行计数,但使用uid,您只需检查uid是否与所需的相同。集合中是否存在(几乎)无限数量的可能对象(例如,每个对象代表一个随机字符串)?或者它是有限的(例如,每个对象代表一个国家,世界上只有200个左右)?否集合中的对象数量是有限的~20个,每个对象都有自己的uid。假设您总共有5个对象作为ob1、ob2、ob3、ob4、ob5,您创建的对象是O1{ob1、ob2}和O2{ob2、ob4、ob1}和O3{ob2、ob1}. 有没有办法为对象OB1到ob5的集合生成uid,记住O1和O3生成的id必须相同,因为它们都有相同的集合?