zoukankan      html  css  js  c++  java
  • 详测 Generics Collections TList (11): Create

    unit Unit1;
    
    interface
    
    uses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls;
    
    type
      TForm1 = class(TForm)
        Button1: TButton;
        Button2: TButton;
        Button3: TButton;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure Button3Click(Sender: TObject);
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    uses Generics.Collections, Generics.Defaults;
    
    var
      i: Integer;
      str: string;
    
    //无参数的建立
    procedure TForm1.Button1Click(Sender: TObject);
    var
      List: TList<Integer>;
    begin
      List := TList<Integer>.Create();
    
      List.AddRange([11,22,33]);
      str := '';
      for i in List do str := str + IntToStr(i) + ' ';
      ShowMessage(str); {11 22 33 }
    
      List.Free;
    end;
    
    //可以基于另一个列表建立
    procedure TForm1.Button2Click(Sender: TObject);
    var
      List,ListTmp: TList<Integer>;
    begin
      ListTmp := TList<Integer>.Create();
      ListTmp.AddRange([1, 2, 3]);
    
      List := TList<Integer>.Create(ListTmp);
    
      str := '';
      for i in List do str := str + IntToStr(i) + ' ';
      ShowMessage(str); {1 2 3 }
    
      ListTmp.Free;
      List.Free;
    end;
    
    //可在建立时同时指定排序器
    procedure TForm1.Button3Click(Sender: TObject);
    var
      List: TList<Integer>;
      Comparer: IComparer<Integer>;
    begin
      {建立排序器}
      Comparer := TComparer<Integer>.Construct(
        function(const n1,n2: Integer): Integer
        begin
          Result := n2 - n1;
        end
      );
    
      List := TList<Integer>.Create(Comparer);
      List.AddRange([2, 3, 1]);
    
      List.Sort; {会根据建立时指定的排序器排序}
    
      str := '';
      for i in List do str := str + IntToStr(i) + ' ';
      ShowMessage(str); {3 2 1 }
    
      List.Free;
    end;
    
    end.
    
  • 相关阅读:
    HDOJ_1010 Tempter of the Bone
    矩阵旋转
    HDU 2544 最短路 http://acm.hdu.edu.cn/showproblem.php?pid=2544
    题目连接:http://acm.zznu.edu.cn/problem.php?id=1329
    队列/优先队列(代码简单模式)
    虚拟方法调用
    Vim中分屏(整理)
    Java Web设计模式之依赖倒换原则
    Java Web 设计模式之开闭原则
    Java 2+2=5
  • 原文地址:https://www.cnblogs.com/del/p/1580845.html
Copyright © 2011-2022 走看看