HashTable的遍历

  1. package coreJava;
  2. import java.util.Enumeration;
  3. import java.util.Hashtable;
  4. import java.util.Iterator;
  5. /*
  6. * 处理原则:先取出key,再利用key获取value
  7. */
  8. public class HashtableDemo {
  9. public static void main(String[] args) {
  10. Hashtable<String,String> ht = new Hashtable<String,String>();
  11. for(int i = 0;i<10;i++){
  12. ht.put("key"+i, "value"+i);
  13. }
  14. //利用循环遍历出key和value
  15. for(Iterator<String> itr = ht.keySet().iterator();itr.hasNext();){
  16. String key = (String)itr.next();
  17. String value = (String)ht.get(key);
  18. System.out.println(key+" (for) "+value);
  19. }
  20. //利用循环遍历出key和value
  21. Iterator<String> itr = ht.keySet().iterator();
  22. while (itr.hasNext()){
  23. String str = (String)itr.next();
  24. System.out.println(str+" (while) "+ht.get(str));
  25. }
  26. //利用枚举获取value
  27. Enumeration<String> e = ht.elements();
  28. while(e.hasMoreElements()){
  29. System.out.println(e.nextElement());
  30. }
  31. //利用枚举获取key:value对儿
  32. Enumeration<String> e2 = ht.keys();
  33. while(e2.hasMoreElements()){
  34. String key = e2.nextElement();
  35. System.out.println(key+" = "+ht.get(key));
  36. }
  37. }
  38. }
时间: 2024-12-05 21:00:14

HashTable的遍历的相关文章

HashTable集合遍历的三种方法

hashtable集合遍历可以根据key,value以及key+value 示例代码: Hashtable table = new Hashtable(); Student stu = new Student(); stu.Name = "李四"; stu.Age = 18; Student stu1 = new Student(); stu1.Name = "张三"; stu1.Age = 18; Student stu2 = new Student(); stu

JAVA的Hashtable在遍历时的迭代器线程问题

这篇博客主要讲什么 Hashtable及其内部类的部分源码分析 Hashtable在遍历时的java.util.ConcurrentModificationException异常的来由和解决 单机在内存中缓存数据并定期清除过期缓存的简单实现 事情的起因 工作中需要在某个业务类中设置一个将一些对象缓存在内存中的一个缓存机制(单机).于是有了以下类似结构的实现: 1 package org.cnblog.test; 2 3 import java.util.Hashtable; 4 import j

Hashtable 数据遍历的几种方式

Hashtable 在集合中称为键值对,它的每一个元素的类型是 DictionaryEntry,由于Hashtable对象的键和值都是Object类型,决定了它可以放任何类型的数据, 下面我就把Hashtable对象中放置定义的一个类的几个对象. 创建的类如下: //代码 static void Main(string[] args) { Person person1 = new Person(); person1.Age = 34; person1.Name = "Jacky"; p

深入集合框架之Hashtable源码剖析

为了分析ConcurrentHashMap,决定先分析一下Hashtable,两者都是线程安全的,必然会有不同的区别,Hashtable和HashMap也有很大的区别. 我们先来看看Hashtable吧. 成员变量: //存储单链表表头的数组,和HashMap中类似 private transient Entry[] table; //Hashtable中实际元素的数量 private transient int count; //Hashtable的临界值(容量* 加载因子). private

[转]HashMap与HashTable的区别、HashMap与HashSet的关系

转自: http://blog.csdn.net/wl_ldy/article/details/5941770 HashTable的应用非常广泛,HashMap是新框架中用来代替HashTable的类,也就是说建议使用HashMap,不要使用HashTable.可能你觉得HashTable很好用,为什么不用呢?这里简单分析他们的区别. 一:HashMap与HashTable的区别 1.HashTable的方法是同步 的,在方法的前面都有synchronized来同步,HashMap未经同步,所以

HashTable、List、ArrayList的经典使用和相互转换

1.添加引用 using System.Collections; 2.创建并添加数据 1 Hashtable hs = new Hashtable(); 2 hs.Add("Name1", "lwj"); 3 hs.Add("Name2", "wyp"); 4 hs.Add("Name3", "zwl"); 5 hs.Add("Name4", "zyc&qu

Java集合(8):Hashtable

一.Hashtable介绍 和HashMap一样,Hashtable 也是一个散列表,它存储的内容是键值对(key-value)映射,它在很大程度上和HashMap的实现差不多. Hashtable 的函数都是同步的,这意味着它是线程安全的.它的key.value都不可以为null.此外,Hashtable中的映射不是有序的. 1.Hashtable的继承关系 public class Hashtable<K,V> extends Dictionary<K,V> implement

PHP的HashTable实现

转载自: http://it.taocms.org/07/1145.htm 数据结构: HashTable数据结构的描述在Zend/zend_hash.h文件中.首先,HashTable中的每一个元素都保存在下面这样的一个struct中: typedef struct bucket { ulong h; /* hash值,下标为数字索引时,h就是索引值 */ uint nKeyLength; /* key字符串的长度,当nKeyLength为0时表示是数字索引 */ void *pData; /

java集合框架09——HashTable和源码分析

上一章我们学习了HashMap的源码,这一节我们来讨论一下HashTable,HashTable和HashMap在某种程度上是类似的.我们依然遵循以下步骤:先对HashTable有个整体的认识,然后学习它的源码,深入剖析HashTable. 1.HashTable简介 首先看一下HashTable的继承关系 java.lang.Object ? java.util.Dictionary<K, V> ? java.util.Hashtable<K, V> public class H