比较Java中随机分配的代码集以指定名称

时间:2015-04-30 05:12:25

标签: java set comparison

美好的一天,

老实说,我不知道如何在标题中表达问题,因此通用描述。实际上我有一组约150个代码,这些代码组合在一起产生一个字符串,就像这样#34; a_b_c_d"。有效组合包含1-4个代码组合以及' - '字符,如果没有赋值,每个代码只使用一次(" a_a ..."不认为有效)。然后将这些代码集分配给唯一的名称。并非所有组合都是合乎逻辑的,但如果组合有效则代码的顺序无关紧要(如果" f_g_e _-"有效,那么" e_g_f _-",&# 34; e_f _-_ g _"有效,它们都有相同的名称)。我花了很多时间并将每个有效组合分配给它的唯一名称,并尝试创建一个解析器来读取这些值并生成名称。

我认为问题很明显。由于订单无关紧要,我必须检查每种可能的组合。代码不能严格排序,因为有些代码在任何位置都有意义。因此,使用简单的解析器无法实现。有没有一种最佳方法可以做到这一点,或者我是否必须强迫用户对标准使用某种顺序?

1 个答案:

答案 0 :(得分:0)

尝试使用TreehMap存储代码(字符串)及其count(int)。每次在字符串中遇到代码时,都会增加代码的计数。

如果您找到任何代码的计数>处理完整个字符串后1然后字符串重复代码并且无效,否则有效。

遍历TreeMap将根据键值进行排序。遍历TreeMap以生成将要排序的代码序列。