2017-10-05 96 views
-2

我有一个字符串数组,其中我想检查数组中的每个元素与其他8个数组元素,以查看第一个数组元素中的任何元素是否在任何元素下分类。我只想分类字符串数组。所以为了做到这一点,我必须检查8个其他阵列(因为我有8个类别)我想知道一个有效的方法来做到这一点,而无需循环逐一字符串数组分类

+2

也许一个短的(伪)代码示例会有所帮助。你重复三次,你正在做8个数组,但我仍然没有得到这个问题。因此请参阅[mcve]。 – GhostCat

+0

在Java中签出hashmaps。 – ninesalt

回答

-1

您可以排序数组,然后使用Arrays.binarySearch()方法而不是逐个循环。这是搜索特定元素的更有效的方法。

+0

@Hasini每个问题只能接受1个解决方案。所以你会想要接受那个对你最有帮助的。 – user3437460

0

您可以使用HashMap而不是array或arraylist。

将8个类别实现为HashMap。 从你想检查的元素中,匹配8个HashMap。这会给你8次检查的最坏情况。

如果你能全部8个类别的值组合成一个HashMap中,最坏的情况将是1

我相信你可以在值从各种类别相结合,通过附加一个校验和来都只有1点的HashMap值。例如:

//values in the hash map 
xxxx_cat1 
yyyy_cat1 
zzzz_cat1 
xxxx_cat2 
yyyy_cat2 
zzzz_cat2 

从HashMap获取值后,只需基于校验和(附加文本)来获取其类别。

+0

谢谢这样做 – Hasini

+0

@Hasini如果我的解决方案有帮助,您可以通过点击旁边空心的勾号来接受我的答案。你会得到2个代表点。 – user3437460

+0

是的,为什么不呢。再次感谢! – Hasini