一、Enumeration接口
1、简介
Enumeration接口本身不是一个数据结构。但是,对其他数据结构非常重要。 Enumeration接口定义了从一个数据结构得到连续数据的手段。
2、函数
(1)、hasMoreElements()迭代器(Iterator)
测试Enumeration枚举对象中是否还含有元素,如果返回true,则表示还含有至少一个的元素
(2)、nextElement()
如果Bnumeration枚举对象还含有元素,该方法得到对象中的下一个元素。
3、应用
1、遍历Hashtable中的元素
Hashtable<String,String> table= new Hashtable<String, String>()
for(Enumeration<String> oEn = table.keys();oEn.hasMoreElements();)
{
String sKey = (String)oEn.nextElement();
String sType = table.get(sKey);
}
二、迭代器(Iterator)
1、简介
迭代器是一个对象,它的工作是遍历并选择序列中的对象。客户端程序员不关心序列底层的结构。此外,迭代器通常被称为“轻量级”对象:创建它的代价小。
2、函数
(1)、 iterator()
要求容器返回一个 Iterator。第一次调用Iterator的next()方法时,它返回序列的第一个元素
(2)、next()
获得序列中的下一个元素
(3)、remove()
将迭代器新返回的元素删除,使用前必须先调用next方法
3、应用
(1)、遍历List
List<String> myList = new ArrayList<String>();
for(Iterator<String> iter = myList.iterator();iter.hasNext();){
String str = (String)iter.next();
}
(2)、遍历Hashtable
Map<String, Object> map = new Hashtable<String, Object>();
//1、效率高
Iterator<Entry<String, Object>> iter = map.entrySet().iterator();
while(iter.hasNext()) {
Map.Entry<String, Object> entry = (Map.Entry<String, Object>) iter.next();
String key = entry.getKey();
Object val = entry.getValue();
}
// //2、效率低
// Iterator<String> iter = map.keySet().iterator();
// while(iter.hasNext()) {
// String key = iter.next();
// Object val = map.get(key);
// }