集合Hashtable

   class Program
    {
        static void Main(string[] args)
        {
            #region 键值对集合使用,Hashtable

            //1.创建一个集合对象
            Hashtable hash = new Hashtable();
            //增加内容
            hash.Add("ylp", "闫刘盘");
            hash.Add("lsx", "刘尚鑫");
            hash.Add("ljj", "李晶晶");
            hash.Add("cc", "陈超");
            hash.Add("bsy", "鲍守营");
            hash.Add("pll", "彭莉莉");

            ////循环遍历键值对集合中的每个元素
            ////键值对集合不能使用for循环遍历,因为无法根据索引获取内容,只能根据键来获取内容。
            //for (int i = 0; i < hash.Count; i++)
            //{
            //    Console.WriteLine(hash[i]);
            //}

            ////通过foreach循环来遍历
            ////遍历键值对集合的所有的键
            //foreach (object item in hash.Keys)
            //{
            //    Console.WriteLine(item.ToString());
            //}

            ////遍历所有的值
            //foreach (object item in hash.Values)
            //{
            //    Console.WriteLine(item);//遍历所有的值
            //}

            //直接遍历
            //此处必须用DictionaryEntry
            foreach (DictionaryEntry item in hash)
            {
                //直接遍历键值对
                Console.WriteLine(item.Key + "     " + item.Value);
            }
            Console.ReadKey();

            ////键值对集合的一个特点:键不能重复。
            ////hash.Add("ylp","有老婆");

            ////判断集合中是否已经存在某个键了
            //if (hash.ContainsKey("ylp"))
            //{
            //    Console.WriteLine("已经存在ylp了。");
            //}
            //else
            //{
            //    hash.Add("ylp", "燕刘盼");
            //}

            ////根据键获取值
            //Console.WriteLine(hash["ylp"]);
            //Console.WriteLine(hash["lsx"]);

            //修改
            //hash["key"]="修改";

            //根据键删除某个元素
            //hash.Remove("key");
            Console.ReadKey();

            #endregion
        }
    }
时间: 2024-10-12 21:07:35

集合Hashtable的相关文章

Stack集合 Queue队列集合 Hashtable哈希表

Stack集合 干草堆集合 栈集合 栈;stack,先进后出,一个一个赋值,一个一个取值,安装顺序来. 属性和方法 实例化 初始化 Stack st = new Stack(); 添加元素 1 个数 2 Console.WriteLine(st.Count); 3 只要使用一次pop方法,就会从最后一个元素开始排除 弹出 4 Console.WriteLine(st.Pop()); 5 Console.WriteLine(st.Count); 6 只想查看不弹出 7 Console.WriteL

Java 集合Hashtable源码深入解析

概要 前面,我们已经系统的对List进行了学习.接下来,我们先学习Map,然后再学习Set:因为Set的实现类都是基于Map来实现的(如,HashSet是通过HashMap实现的,TreeSet是通过TreeMap实现的). 首先,我们看看Map架构.如上图:(01) Map 是映射接口,Map中存储的内容是键值对(key-value).(02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API.其它Map的实现类可以通过继承AbstractMap来减少重复编码.(

基于哈希值的table集合HashTable

此类实现一个哈希表,该哈希表将键映射到相应的值.任何非 null 对象都可以用作键或值. HashTable类的实现类似于HashMap类,但是还有有区别的:线程安全性,同步(synchronization),以及速度. HashMap几乎可以等价于Hashtable,除了HashMap是非synchronized的,并可以接受null(HashMap可以接受为null的键值(key)和值(value),而Hashtable则不行). HashMap是非synchronized,而Hashtab

C#中字典集合HashTable、Dictionary、ConcurrentDictionary三者区别

学习参考博客:http://www.cnblogs.com/yinrq/p/5584885.html 使用Stopwatch类测试耗时代码: using System; using System.Collections; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics; namespace WebApp { class Program { static

C# 集合 — Hashtable 线程安全

基础知识重要吗?真的很重要. 就在笔者与同事聊天中突然同事提出一个问题,让笔都有点乱了手脚(有点夸张),题目是这样的: 问:Hashtable 是线程安全的吗? 答:…… (沉默中,Yes Or No?Why?) 带着问题我们一步一步的解答: 1.线程安全 概念: 通俗的讲就是多线程访问时,采用了加锁机制,当一个线程操作临界区时,对临界区进行保护,其他线程等前面线程操作完才能排队操作临界区.这样保障数据一致减少数据污染. 2.求证 各种资料显示 Hashtable 的 Synchronized

java集合-HashTable

概述 和 HashMap 一样,Hashtable 也是一个散列表,它存储的内容是键值对. Hashtable 在 Java 中的定义为: public class Hashtable<K,V> extends Dictionary<K,V> implements Map<K,V>, Cloneable, java.io.Serializable 从源码中,我们可以看出,Hashtable 继承于 Dictionary 类,实现了 Map, Cloneable, jav

Java入门系列之集合Hashtable源码分析(十一)

前言 上一节我们实现了散列算法并对冲突解决我们使用了开放地址法和链地址法两种方式,本节我们来详细分析源码,看看源码中对于冲突是使用的哪一种方式以及对比我们所实现的,有哪些可以进行改造的地方. Hashtable源码分析 我们通过在控制台中实例化Hashtable并添加键值对实例代码来分析背后究竟做了哪些操作,如下: public static void main(String[] args) { Hashtable hashtable = new Hashtable(); hashtable.p

特殊集合(stack、queue、hashtable的示例及练习)

特殊集合:stack,queue,hashtable stack:先进后出,一个一个的赋值一个一个的取值,按照顺序. .count           取集合内元素的个数 .push()         将元素一个一个推入集合中 .pop()           将元素一个个弹出集合 .clear()         清空集合 queue:先进先出,一个一个的赋值一个一个的取值,按照顺序. .count              取集合内元素的个数 .Enqueue()      进队列集合 .

HashMap, HashTable, CurrentHashMap的区别

转载:http://www.jianshu.com/p/c00308c32de4 HashMap vs ConcurrentHashMap 引入ConcurrentHashMap是为了在同步集合HashTable之间有更好的选择,HashTable与HashMap.ConcurrentHashMap主要的区别在于HashMap不是同步的.线程不安全的和不适合应用于多线程并发环境下,而ConcurrentHashMap是线程安全的集合容器,特别是在多线程和并发环境中,通常作为Map的主要实现.除了