Javaでのフェイルファストとフェイルセーフの違い
| Sr。いいえ。 | キー | ||
|---|---|---|---|
| 1 | 例外 | スレッド中のコレクションの追加、削除、更新など、コレクション内の変更はすべてコレクションを繰り返し、高速スロー同時変更例外をスローします。 | フェイルセーフコレクションは例外をスローしません。 |
| 2。 | コレクションの種類 | ArrayListとハッシュマップコレクションは、フェイルファストイテレータの例です。 | CopyOnWriteと同時変更は、フェイルセーフイテレータの例です。 |
| 3。 | パフォーマンスとメモリ | 代わりに実際のコレクションで動作します。したがって、このイテレータは余分なメモリと時間を必要としません | 実際のコレクションではなく、コレクションのクローンに取り組んでいます。時間とメモリの面でオーバーヘッドです |
| 4。 | 変更 | イテレータは、コレクションを反復処理している間、コレクションを変更することを許可しません。 | フェイルセーフイテレータを使用すると、コレクションを反復処理しながらコレクションを変更できます。 |
フェイルセーフの例
public class FailSafeExample{
public static void main(String[] args){
ConcurrentHashMap<String, Integer> map = new ConcurrentHashMap<String, Integer>();
//Adding elements to map
map.put("Dell", 1);
map.put("IBM", 2);
//Getting an Iterator from map
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);
}
}
} 出力
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);
//Getting an Iterator from list
Iterator<Integer> it = list.iterator();
while (it.hasNext()){
Integer integer = (Integer) it.next();
list.add(4);
}
}
} 出力
Exception in thread "main" java.util.ConcurrentModificationException at java.util.ArrayList$Itr.checkForComodification(Unknown Source)
-
JavaでのArrayListとHashSetの違い
HashSetとArrayListはどちらも、Javaコレクションフレームワークの最も重要なクラスの一部です。 以下は、ArrayListとHashSetの重要な違いです。 Sr。いいえ。 キー ArrayList ハッシュセット 1 実装 ArrayListはリストインターフェイスの実装です。 一方、 HashSetは、セットインターフェイスの実装です。 2 内部実装 ArrayListは、その実装のために配列を内部的に実装します。 HashSetは、実装にHashmapを内部的に使用します。 3 要素の順序 ArrayListは、挿入順序、つまり
-
JavaでのIteratorとListIteratorの違い
Javaは、コレクションに格納されているデータを1つずつトラバースするために、これら2つのインターフェースを提供しました。イテレータとリストイテレータの内部実装により、それらは異なりますが、両方のイテレータの主なアジェンダは同じです。 IteratorとListIteratorの重要な違いは次のとおりです。 Sr。いいえ。 キー イテレータ ListIterator 1 該当する イテレータは、コレクションのタイプに関係なく、任意のコレクションをトラバースするために使用できます。 リストイテレータは、arraylist、linkedlistなどのリストコレクションが実装