zoukankan      html  css  js  c++  java
  • 十八、详测 Generics Collections TList (9): BinarySearch

    unit Unit1;

    interface

    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;

    type
      TForm1 
    = class(TForm)
        Button1: TButton;
        
    procedure Button1Click(Sender: TObject);
      
    end;

    var
      Form1: TForm1;

    implementation

    {$R *.dfm}

    uses Generics.Collections, Generics.Defaults;

    procedure TForm1.Button1Click(Sender: TObject);
    var
      List: TList
    <string>;
      num: Integer;
      b: Boolean;
      Comparer: IComparer;
    begin
      List :
    = TList<string>.Create();
      List.AddRange([
    '123''ABB''ABC']);

      
    {默认的查找需要完全吻合才能找到}
      
    if List.BinarySearch('ABC', num) then ShowMessage(IntToStr(num)); {2}

      
    {这里自定义个对比器, 只要第一个字符吻合就算找到了}
      Comparer :
    = TComparer<string>.Construct(
        
    function(const s1,s2: string): Integer
        
    begin
          Result :
    = Ord(s1[1]) - Ord(s2[1]);
        
    end);

      
    if List.BinarySearch('ABC', num, Comparer) then ShowMessage(IntToStr(num)); {1}
          
      List.Free;
    end;

    end.
  • 相关阅读:
    python递归可视化
    python递归基础
    python之双端队列及回文检测
    python接口多线程压测
    python获取文件目录下文件名并修改名称
    Linux 截取日志命令
    python计算后续表达式
    python十进制数转换成任意进制数
    python|os库
    python|英文标题格式化
  • 原文地址:https://www.cnblogs.com/jxgxy/p/1596525.html
Copyright © 2011-2022 走看看