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.
    
  • 相关阅读:
    js-21点小游戏
    js-打印出现最多次的字母
    盒模型浮动
    九九乘法表
    猫眼-湄公河行动电影介绍页面
    (day4)用css画三角形以及红旗
    cookie的使用
    用Servlet校验密码2
    Servlet登录验证
    Servlet概述
  • 原文地址:https://www.cnblogs.com/del/p/1580728.html
Copyright © 2011-2022 走看看