我正在寻找一种有效的方法来检测数组中唯一值的数量。

我目前的做法:

  • 整数的快速排序数组
  • 然后运行一个循环来比较元素。

  • 在代码中:
      yearHolder := '';
      for I := 0 to  High(yearArray) do
      begin
        currYear := yearArray[i];
        if (yearHolder <> currYear) then
        begin
          yearHolder := currYear;
          Inc(uniqueYearNumber);
        end;
      end;
    

    最佳答案

    以下是 THashedStringList 的示例:

    hl := THashedStringList.Create; // in Inifiles
    try
      hl.Sorted := True;
      hl.Duplicates := dupIgnore; // ignores attempts to add duplicates
      for i := 0 to  High(yearArray) do
        hl.Add(yearArray[i]);
      uniqueYearCount := hl.Count;
    finally
      hl.Free;
    end;
    

    关于delphi - 检测数组中唯一值的数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/988730/

    10-10 22:16