文档章节

详测 Generics Collections TDictionary(3): TPairEnumerator、TKeyEnumerator、TValueEnumerator、ExtractPair

涂孟超
 涂孟超
发布于 2014/09/26 15:37
字数 168
阅读 7
收藏 0
点赞 0
评论 0
//这组功能没有多少实用价值
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;

procedure TForm1.Button1Click(Sender: TObject);
var
  Dictionary: TDictionary<string,Integer>;
  ds: TDictionary<string,Integer>.TPairEnumerator;
  ks: TDictionary<string,Integer>.TKeyEnumerator;
  vs: TDictionary<string,Integer>.TValueEnumerator;
begin
  Dictionary := TDictionary<string,Integer>.Create();

  Dictionary.Add('n1', 111);
  Dictionary.Add('n2', 222);
  Dictionary.Add('n3', 333);


  ds := Dictionary.GetEnumerator;
  while ds.MoveNext do ShowMessageFmt('%s:%d', [ds.Current.Key, ds.Current.Value]);
  {n2:222  n3:333  n1:111}

  ks := Dictionary.Keys.GetEnumerator;
  while ks.MoveNext do ShowMessageFmt('%s', [ks.Current]);
  {n2  n3  n1}

  vs := Dictionary.Values.GetEnumerator;
  while vs.MoveNext do ShowMessageFmt('%d', [vs.Current]);
  {222  333  111}    

  { ExtractPair 应是提取元素, 但它的返回值有些问题; 该函数源码有待修改 }
  Dictionary.ExtractPair('n1');
  ShowMessage(IntToStr(Dictionary.Count)); {2}
  
  Dictionary.Free;
end;

end.

 
 
 
 
 

 

 

  

© 著作权归作者所有

共有 人打赏支持
涂孟超
粉丝 12
博文 2004
码字总数 14107
作品 0
深圳
程序员
Delphi 2010 中的泛型

Delphi 2010 中的泛型日期:2010年5月31日 作者: 人气:10504 查看:[大字体 中字体 小字体]2010已发布很长时间了,口碑还不错,准备用它开发下一项目,但对泛型等新东西的认识还不够,就搜了...

vga ⋅ 2016/08/09 ⋅ 0

GBin1推荐教程之Java泛类型(Generics)快速入门

发布时间: 2011-9-20 来源:javacodegeeks.com 翻译: gbin1.com 泛类型(Generics)是Java SE5.0里的特性,在发布后的几年里,我相信每个java开发者都不仅仅听说过,而且实实在在的使用过。...

gbin1 ⋅ 2011/09/21 ⋅ 0

java范型中的get、put原则

java范型中的get、put原则 只要有可能,一个好的习惯就是插入通配符(wildcards ),但是如何决定选择哪种通配符呢?即什么场景选择extends,什么场景选择super,以及什么场景不适合选择通配...

Beaver_ ⋅ 2015/05/24 ⋅ 1

Apache Maven 3.0.3 Released

相比较 Maven 3.0.2 版本,3.0.3 改进主要包括: [MNG-3575] - Allow hexadecimal parameters [MNG-4971] - Display maven home in version info * [MNG-4984] - Simplify drop in of 3rd p......

红薯 ⋅ 2011/03/05 ⋅ 0

Google Guava vs Apache Commons for Argument Validation

It is an established good practice to validate method arguments at the beginning of the method body. For example you could check that the passed value is not negative before doi......

泳泳啊泳泳 ⋅ 01/07 ⋅ 0

ylbtech-LanguageSamples-Generics(泛型)

ylbtech-Microsoft-CSharpSamples:ylbtech-LanguageSamples-Generics(泛型) 1.A,示例(Sample)返回顶部 “泛型”示例 (C#) 本示例演示如何创建具有单个类型参数的自定义泛型列表类,以及如何...

吞吞吐吐的 ⋅ 2017/11/08 ⋅ 0

BeanUtils 1.9.0 发布, JavaBean 工具包

BeanUtils 1.9.0 版本包括一些bug修复和改进。最明显的改进是新版本现在要求 JDK5.0 版本以上,语言特性引入了Java 5(主要是泛型),同时还支持自定义 bean introspection。 修复的bugs ==...

唐伟 ⋅ 2013/12/13 ⋅ 0

Go’s Type System Is An Embarrassment

Go is one of the best tools out there today for heavy lifting and backend code. It’s my go to language when it’s time to bring out the big guns and I enjoy working with it im......

Jerikc ⋅ 2014/08/30 ⋅ 0

Java8 Lambda - Functioanl Interface 函数式接口

在java 8 里面新增了functional interface 这个概念。并且添加了新的annotation @FunctionalInterfaceI 1 什么是functional interface 函数式接口了? functional interface : functional in......

vjjy001 ⋅ 2016/10/04 ⋅ 0

The Go Type System

Recently I've become very interested inthe Golang programming language. Golang, or Google Go as it's often called, is a new programming language designed by some fairly well-kno......

Jerikc ⋅ 2014/08/30 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Spring发展历程总结

转自与 https://www.cnblogs.com/RunForLove/p/4641672.html 目前很多公司的架构,从Struts2迁移到了SpringMVC。你有想过为什么不使用Servlet+JSP来构建Java web项目,而是采用SpringMVC呢?...

onedotdot ⋅ 22分钟前 ⋅ 0

Python模块/包/库安装(6种方法)

Python模块/包/库安装(6种方法) 冰颖机器人 2016-11-29 21:33:26 一、方法1: 单文件模块 直接把文件拷贝到 $python_dir/Lib 二、方法2: 多文件模块,带setup.py 下载模块包(压缩文件zip...

cswangyx ⋅ 42分钟前 ⋅ 0

零基础学习大数据人工智能,学习路线篇!系统规划大数据之路?

大数据处理技术怎么学习呢?首先我们要学习Python语言和Linux操作系统,这两个是学习大数据的基础,学习的顺序不分前后。 Python:Python 的排名从去年开始就借助人工智能持续上升,现在它已经...

董黎明 ⋅ 50分钟前 ⋅ 0

openJdk和sun jdk的区别

使用过LINUX的人都应该知道,在大多数LINUX发行版本里,内置或者通过软件源安装JDK的话,都是安装的OpenJDK, 那么到底什么是OpenJDK,它与SUN JDK有什么关系和区别呢? 历史上的原因是,Ope...

jason_kiss ⋅ 59分钟前 ⋅ 0

梳理

Redux 是 JavaScript 状态容器,提供可预测化的状态管理。 它是JS的状态容器,是一种解决问题的方式,所以即可以用于 react 也可以用于 vue。 需要理解其思想及实现方式。 应用中所有的 stat...

分秒 ⋅ 今天 ⋅ 0

Java 后台判断是否为ajax请求

/** * 是否是Ajax请求 * @param request * @return */public static boolean isAjax(ServletRequest request){return "XMLHttpRequest".equalsIgnoreCase(((HttpServletReques......

JavaSon712 ⋅ 今天 ⋅ 0

Redis 单线程 为何却需要事务处理并发问题

Redis是单线程处理,也就是命令会顺序执行。那么为什么会存在并发问题呢? 个人理解是,虽然redis是单线程,但是可以同时有多个客户端访问,每个客户端会有 一个线程。客户端访问之间存在竞争...

码代码的小司机 ⋅ 今天 ⋅ 0

到底会改名吗?微软GVFS 改名之争

微软去年透露了 Git Virtual File System(GVFS)项目,GVFS 是 Git 版本控制系统的一个开源插件,允许 Git 处理 TB 规模的代码库,比如 270 GB 的 Windows 代码库。该项目公布之初就引发了争...

linux-tao ⋅ 今天 ⋅ 0

笔试题之Java基础部分【简】【二】

1.静态变量和实例变量的区别 在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变...

anlve ⋅ 今天 ⋅ 0

Lombok简单介绍及使用

官网 通过简单注解来精简代码达到消除冗长代码的目的 优点 提高编程效率 使代码更简洁 消除冗长代码 避免修改字段名字时忘记修改方法名 4.idea中安装lombnok pom.xml引入 <dependency> <grou...

to_ln ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部