English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Iterator y Enumeration son cursor, utilizados para recorrer y acceder a los elementos de una colección. Ambos pertenecen al marco de colecciones. En el JDK1.0 y JDK.1.2La versión de Iterator agregó la enumeración.
La enumeración no puede realizar cambios estructurales en la colección porque tiene acceso de solo lectura a los elementos de la colección. Tiene los siguientes métodos:
* hasMoreElements()
* nextElement()
Por otro lado, el iterador puede leer y eliminar elementos de la colección. Tiene los siguientes métodos:-
* hasNext()
*nex()
*remove()
Índice | Clave | Iterador | Enumeración |
---|---|---|---|
1Un | Básico | En Iterator, podemos leer y eliminar elementos mientras recorremos los elementos de una colección. | Al usar enumeraciones, solo podemos leer elementos mientras recorremos los elementos de una colección. |
2。 | 访问 | 它可以与集合框架的任何类一起使用。 | 它只能与收集框架的旧类一起使用,例如Vector和HashTable。 |
3。 | 失败-失败和失败-安全 | 集合中的任何更改,例如在线程迭代集合期间从集合中移除元素,则会引发并发修改异常。 | 枚举本质上是无故障安全的。它不会引发并发修改异常 |
4。 | 局限性 | 只能进行正向迭代 | 不能使用枚举执行删除操作。 |
5, | 方法 | 它有以下方法− *hasNext() | 它具有以下方法- * hasMoreElements() * nextElement() |
class EnumerationExample { public static void main(String args[]) { List list = new ArrayList(Arrays.asList(new String[] {"Apple", "Cat", "Dog", "Rat"})); Vector v = new Vector(list); delete(v, "Dog"); } private static void delete(Vector v, String name) { Enumeration e = v.elements(); while (e.hasMoreElements()) { String s = (String) e.nextElement(); if (s.equals(name)) { v.remove(name); } } // 显示名称 System.out.println("The names are:"); e = v.elements(); while (e.hasMoreElements()) { // 打印元素 System.out.println(e.nextElement()); } } }
class IteratorExample { public static void main(String args[]) { List list = new ArrayList(Arrays.asList(new String[] {"Apple", "Cat", "Dog", "Rat"})); Vector v = new Vector(list); delete(v, "Dog"); } private static void delete(Vector v, String name) { Iterator i = v.iterator(); while (i.hasNext()) { String s = (String) i.next(); if (s.equals(name)) { i.remove(); } } //显示名称 System.out.println("The names are:"); i = v.iterator(); while (i.hasNext()) { System.out.println(i.next()); } } }