我想了解如何从 Java 对象集合中生成唯一 ID(字符串/数字等),这些对象可以是各种数据类型,如 String、BigDecimal、org.joda.time.LocalDate 或 org .joda.time.LocalDateTime 或任何自定义 java 对象。
生成的 id 应该基于 java 对象中的值,以便为具有相同值的两个集合生成相同的 id。类似于 sql group by 子句的东西。我想根据 (col1, col2, col3) 组生成一个唯一的 id,其中 col1、col2 和 col3 可以是任何数据类型。
最佳答案
如果类型不会改变,你可以使用一个唯一的键
String id = Arrays.toString(col1, col2, col3);
如果您需要它们是唯一的,即使是混合和匹配类型,您可以使用序列化生成二进制格式或
StringBuilder idsb = new StringBuilder();
for(Object o: arrayOfObjects)
idsb.append(o.getClass()).append(':').append(o).append(',');
String id = idsb.toString();
如果你有
Object col1 = "2012-04-19 12:13:46", col2 = "2012-05-02", col3 = "Andy";
String key = col1+"~"+col2+"~"+col3;
关于java - 从值集合生成唯一 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13859801/