文档章节

详测 Generics Collections TDictionary(2): ContainsKey、ContainsValue、AddOrSetValue、TryGetValue

涂孟超
 涂孟超
发布于 2014/09/26 15:38
字数 195
阅读 18
收藏 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>;
  b: Boolean;
  T: Integer;
begin
  Dictionary := TDictionary<string,Integer>.Create();

  {添加}
  Dictionary.Add('n1', 111);
  Dictionary.Add('n2', 222);
  Dictionary.Add('n3', 333);

  {判断指定的 Key 是否存在}
  b := Dictionary.ContainsKey('n1');
  ShowMessage(BoolToStr(b, True));   {True}
  b := Dictionary.ContainsKey('n4');
  ShowMessage(BoolToStr(b, True));   {False}

  {判断指定的 Value 是否存在}
  b := Dictionary.ContainsValue(111);
  ShowMessage(BoolToStr(b, True));   {True}
  b := Dictionary.ContainsValue(999);
  ShowMessage(BoolToStr(b, True));   {False}

  {使用 AddOrSetValue 时, 如果 Key 存在则替换值; 此时如果用 Add 将发生异常}
  Dictionary.AddOrSetValue('n1', 123);
  ShowMessage(IntToStr(Dictionary['n1'])); {123}

  {使用 AddOrSetValue 时, 如果 Key 不存在则同 Add}
  Dictionary.AddOrSetValue('n4', 444);
  ShowMessage(IntToStr(Dictionary['n4'])); {444}

  {尝试取值}
  if Dictionary.TryGetValue('n2', T) then
    ShowMessage(IntToStr(T)); {222}
  
  Dictionary.Free;
end;

end.

 
 
 
 
 

 

 

  

本文转载自:http://www.cnblogs.com/del/archive/2009/10/11/1580938.html

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

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

vga
2016/08/09
19
0
hashmap实现原理浅析

看了下JAVA里面有HashMap、Hashtable、HashSet三种hash集合的实现源码,这里总结下,理解错误的地方还望指正 HashMap和Hashtable的区别 HashSet和HashMap、Hashtable的区别 HashMap和Hashtab...

商者
2016/03/30
37
0
org.apache.commons.collections.map.LRUMap 在cache中的使用

LRUMap对于构建缓存或者连接池之类的技术经常用到,common-collections框架给了现成的实现,大家在不需要修改的情况下,直接用,好用且稳定。 一个cache的简单例子: import org.apache.comm...

Faye_Cai
2016/08/15
238
0
Hashtable 与HashMap的区别

1、不同点: (1)、Hashtable书写不规范,t是小写(当然这不是重点,哈哈), (2)、Hashtable继承自Dictionary,而HashMap继承自AbstractMap。 (3)、Hashtable是JDK1.0时就有的,而HashMap...

科技小能手
2017/11/12
0
0
javase 复习汇总二:hashtable和hashmap 的区别

1 HashMap不是线程安全的 hastmap是一个接口 是map接口的子接口,是将键映射到值的对象,其中键和值都是对象,并且不能包含重复键,但可以包含重复值。HashMap允许null key和null value,而h...

yiguangtia
2014/04/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring源码学习笔记-1-Resource

打算补下基础,学习下Spring源码,参考书籍是《Spring源码深度解析》,使用版本是Spring 3.2.x,本来想试图用脑图记录的,发现代码部分不好贴,还是作罢,这里只大略记录下想法,不写太细了 ...

zypy333
今天
10
0
RestClientUtil和ConfigRestClientUtil区别说明

RestClientUtil directly executes the DSL defined in the code. ConfigRestClientUtil gets the DSL defined in the configuration file by the DSL name and executes it. RestClientUtil......

bboss
今天
17
0

中国龙-扬科
昨天
2
0
Linux系统设置全局的默认网络代理

更改全局配置文件/etc/profile all_proxy="all_proxy=socks://rahowviahva.ml:80/"ftp_proxy="ftp_proxy=http://rahowviahva.ml:80/"http_proxy="http_proxy=http://rahowviahva.ml:80/"......

临江仙卜算子
昨天
11
0
java框架学习日志-6(bean作用域和自动装配)

本章补充bean的作用域和自动装配 bean作用域 之前提到可以用scope来设置单例模式 <bean id="type" class="cn.dota2.tpye.Type" scope="singleton"></bean> 除此之外还有几种用法 singleton:......

白话
昨天
10
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部