我有一个characters数组,我将对其进行迭代。一旦我找到了一个我以前没有发现过的角色,我就会做一些事情。
这意味着我需要跟踪我已经见过的角色。我的第一个选择是HashSet,但我不确定这是否是正确的选择,因为hashing一个字符可能会比comparing两个字符花费更长的时间。我不知道这是不是真的。
澄清转储
这个数组实际上是一个二维数组,我是从一所大学编写的函数中得到的。我也需要定位每个角色的位置。某一类型的字符不相关的位置,只要该函数不对某一类型的字符调用两次。
我需要知道的是多维数组中所有的唯一字符,以及其中一个字符的位置。
发布于 2013-11-06 15:21:40
如果您只关心ASCII,那么最好的方法是一个大小为128的数组并转换为int。
boolean[] array = new bolean[128];
char c = 'a';
array[(int) c] = true; 任何更大的编码,明确地使用地图,我认为。
发布于 2013-11-06 15:17:24
可以从数组中获得一个HashSet,如下所示:
char[] array = new[] { 'a', 'a', 'b', 'c', 'c' };
HashSet<char> hashSet = new HashSet<char>(array);这将是一个更好的方法,比比较和发现重复的一个人。
发布于 2013-11-06 15:18:17
如果你说的是简单的焦炭,我认为你可以做一些简单的事情,比如:
bool[] map = new bool[256];对于元素访问:
map[(int)'a'];https://stackoverflow.com/questions/19815754
复制相似问题