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.
  • 相关阅读:
    kubernetes yaml文件格式
    docker 镜像上传至私有仓库
    Docker Compose编排容器
    jenkins+gitlab+ansible+dockerfile+k8s自动发布代码
    kubernetes 命令行
    关于HDFS的读写流程
    vue中watched属性
    app中rem算法
    vue使用中的随笔
    react 表单获取多个input
  • 原文地址:https://www.cnblogs.com/jxgxy/p/1596525.html
Copyright © 2011-2022 走看看