English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Nummer | Schlüssel | Nicht bestanden | Fehler sicher |
---|---|---|---|
1 | Ausnahmen | Jegliche Änderung in der Sammlung (z.B. hinzufügen, löschen und aktualisieren der Sammlung während eines Threads) führt dazu, dass die Sammlung iteriert wird und dann schnell eine Ausnahme wegen konurrentengesteuerter Änderung ausgelöst wird. | Fehler sichere Sammlungen verursachen keine Ausnahmen. |
2. | Sammlungstypen | ArrayList und hashmap-Sammlungen sind Beispiele für schnell fehlende Iteratoren | CopyOnWrite und konurrentengesteuerte Änderungen sind Beispiele für Fehler sichere Iteratoren |
3. | Leistung und Gedächtnis | statt auf der tatsächlichen Sammlung zu arbeiten. Daher benötigt dieser Iterator keine zusätzlichen Speicher und Zeit | Es bearbeitet eine Kopie der Sammlung, nicht die tatsächliche Sammlung. Zeit- und Speicherbedarf |
4. | Änderungsart | Der Iterator ermöglicht keine Änderungen an der Sammlung während der Iteration. | Fehlerschutz-Iteratoren erlauben es, eine Sammlung während der Iteration zu ändern. |
public class FailSafeExample{ public static void main(String[] args){ ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<String, Integer>(); //Elemente auf die Abbildung hinzufügen map.put("Dell", 1); map.put("IBM", 2); //Iteratoren aus der Abbildung holen Iterator<String> it = map.keySet().iterator(); while (it.hasNext()){ String key = (String) it.next(); System.out.println(key+" : "+map.get(key)); map.put("Google", 3); } } }
Ausgaberesultat
IBM :2 Dell:1
public class FailFastExample{ public static void main(String[] args){ List<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); list.add(3); //Iteratoren aus der Liste holen Iterator<Integer> it = list.iterator(); while (it.hasNext()){ Integer integer = (Integer) it.next(); list.add(4); } } }
Ausgaberesultat
Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source)