检测Array中不同字符串的数量

时间:2012-08-08 09:18:22

标签: objective-c ios uitableview

基本上我需要一个函数来计算数组中不同值的数量,另外一个函数来计算我数组中每个不同值的实际计数。

我有一个包含不断变化的数值的数组:

Array =(This,This,This,This,Is,Is,Is,Is,Is,It,It,It,it)

我想制作一个列表视图,每个部分应该包含不同的类别,如:

This
- Element 1
- Element 2
- ...
Is
- Element 1
- ...
It
- Element 1
- ...

所以我的部分数量需要 3 ,每个部分需要子元素的数量。

我怎样才能实现这一目标?有没有比for-statement更好的方法来计算每个部分的索引?

谢谢!

2 个答案:

答案 0 :(得分:4)

将每个数组元素添加到NSCountedSet。然后,集合的count是您添加的不同对象的数量,您可以使用countForObject:询问集合中每个不同对象的数量。

答案 1 :(得分:0)

首先,复制你的数组,以便使用。

  1. 要计算不同的值,请从复制中删除所有重复项 array和copiedArray.count会告诉你你需要什么。 (搜索 你自己如何删除重复项。)。
  2. 要获取每个组的实际计数:您已复制的数组已经没有重复项,因此在复制的数组中进行for循环:

    for (NSString *stringer in copiedArrayWithoutDuplicates){

       int counter = 0;
       for(NSString *iniStr in initialArrayWithDuplicates){
          if([stringer isEqualToString: iniStr]){
              counter++;
          }
       }
       NSLog(@"string %@ was detected %i times", stringer, counter);
    }