Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
比较Java中随机分配的代码集以分配名称_Java_Set_Comparison - Fatal编程技术网

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

比较Java中随机分配的代码集以分配名称,java,set,comparison,Java,Set,Comparison,你好 老实说,我不知道如何在标题中表达这个问题,因此是一般性的描述。事实上,我有一组大约150个代码,它们组合在一起生成一个字符串,如“a_b_c_d”。有效组合包含1-4个代码组合,如果未指定值,则加上“-”字符,并且每个代码仅使用一次(“a_a…”无效)。然后将这些代码集指定给一个唯一的名称。并非所有组合都符合逻辑,但如果组合有效,则代码的顺序并不重要(如果“f_g_e_-”有效,则“e_g_f_-”、“e_f_-”有效,并且它们都具有相同的名称)。我花了些时间,将每个有效的组合分配给它唯一

你好

老实说,我不知道如何在标题中表达这个问题,因此是一般性的描述。事实上,我有一组大约150个代码,它们组合在一起生成一个字符串,如“a_b_c_d”。有效组合包含1-4个代码组合,如果未指定值,则加上“-”字符,并且每个代码仅使用一次(“a_a…”无效)。然后将这些代码集指定给一个唯一的名称。并非所有组合都符合逻辑,但如果组合有效,则代码的顺序并不重要(如果“f_g_e_-”有效,则“e_g_f_-”、“e_f_-”有效,并且它们都具有相同的名称)。我花了些时间,将每个有效的组合分配给它唯一的名称,并尝试创建一个解析器来读取这些值并生成名称


我认为问题是显而易见的。由于顺序无关紧要,我必须检查每一种可能的组合。代码不能严格排序,因为有些代码在任何位置都有意义。因此,用一个简单的解析器是不可能做到这一点的。是否有一种最佳的方法来执行此操作,或者我必须强制用户使用某种与标准相反的顺序?

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

处理整个字符串后,如果发现任何代码的计数大于1,则该字符串具有重复的代码,无效,否则无效


遍历树映射将根据键值进行排序。遍历树映射以生成将被排序的代码序列。

检查有效性实际上不是我关心的问题。如果在可用代码中找不到输入的代码,则该代码无效。在搜索作业之前,我仍然会检查双重代码以使其无效,但这是最简单的部分。你的目标是什么?检查给定字符串是否有效?或者生成所有可能的组合?目标是检索组合的名称。存在这些值的组合(包括一些单独的代码,p.ex.“a_--”对应一个名称。p.ex.“a_ub_uc_ud”->“Red”、“e_uf_ug”->“Blue”等。如果代码位置发生变化,“e_uf_ug”-=“g_ue_U”->“g_ue”-=“g_ue”->“g_ue”->“Blue”,则这些值不会发生变化我已经编辑了上面的答案。使用树形图,它类似于HashMap,只是它将按键排序。