关于Dictionary元素的遍历
来源:互联网 发布:php 跳出while循环 编辑:程序博客网 时间:2024/06/08 12:44
关于Dictionary元素的遍历
以前我面试别人的时候,我经常会问应聘者,如何在C#中遍历Hashtable中的元素,每次遍历时,需要得到Key和Value。
一直以来,也经常有人问这个问题。包括Java下Map的元素的遍历。我在水木清华的Java版也回答过这个问题。
.NET平台下:
Java环境下:
点评:
.NET环境下,引入了foreach的写法,但是IDictionary和ICollection的GetEnumerator()方法返回的类型是不一样的,这一点,很容易让人迷惑,初学者很多都会写错。如下是初学者常用的写法:
Java下,使用起来的方式,有点麻烦,很多初学者,不使用恰当的方法遍历Map,甚至一些写了多年Java程序员都是用比较笨的办法。
一直以来,也经常有人问这个问题。包括Java下Map的元素的遍历。我在水木清华的Java版也回答过这个问题。
.NET平台下:
IDictionary dictionary = new Hashtable();
foreach (DictionaryEntry entry in dictionary)
{
Object key = entry.Key;
Object val = entry.Value;
}
foreach (DictionaryEntry entry in dictionary)
{
Object key = entry.Key;
Object val = entry.Value;
}
Java环境下:
Map map = new HashMap();
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
Iterator iter = map.entrySet().iterator();
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
Object key = entry.getKey();
Object val = entry.getValue();
}
点评:
.NET环境下,引入了foreach的写法,但是IDictionary和ICollection的GetEnumerator()方法返回的类型是不一样的,这一点,很容易让人迷惑,初学者很多都会写错。如下是初学者常用的写法:
IDictionary dictionary = new Hashtable();
foreach (Object val in dictionary)
{
//
}
这是一个地雷,.NET的基础类库和C#在语言的设计(对foreach的支持方式)的相互作用下,产生了这一个地雷,也许也可以称之为缺陷……foreach (Object val in dictionary)
{
//
}
Java下,使用起来的方式,有点麻烦,很多初学者,不使用恰当的方法遍历Map,甚至一些写了多年Java程序员都是用比较笨的办法。
Map map = new HashMap();
Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
这种方式效率会比较低。Iterator iter = map.keySet().iterator();
while (iter.hasNext()) {
Object key = iter.next();
Object val = map.get(key);
}
0 0
- 关于Dictionary元素的遍历
- Dictionary的遍历方法
- Dictionary遍历过程中删除字典中为空的元素
- .net 中Dictionary的遍历
- C# Dictionary的遍历理解
- 遍历Dictionary
- 关于二叉树的前序遍历、中序遍历、删除元素、插入元素
- C# Dictionary 的几种遍历方法
- C# Dictionary 的几种遍历方法
- C# Dictionary 的几种遍历方法
- C# Dictionary 的几种遍历方法
- C# Dictionary 的几种遍历方法
- c#遍历dictionary的几种方法
- C# Dictionary 的几种遍历方法
- C# Dictionary 的几种遍历方法
- 遍历Dictionary和HashTable的方法
- C# Dictionary 的几种遍历方法
- C# Dictionary 的几种遍历方法
- 读取联系人信息
- wnmp2.0.13 phpmyadmin的root密码password
- 中文字体的英文名称对照表
- 有上下界网络流问题
- 最短路径—Dijkstra算法和Floyd算法
- 关于Dictionary元素的遍历
- ASP.NET DataTable合并
- POJ 1001 Exponentiation 无限大数的指数乘法 题解
- nyist -- 组队赛(一)
- 页面后台调用前台JS脚本
- JSON和java对象的互转
- [iPhone高级]基于XMPP的iOS聊天客户端程序(iOS端一)
- SringBuilder简介
- 业务中常用的sql语句