Java
 Computer >> コンピューター >  >> プログラミング >> Java

Javaでスレッドセーフなコレクションクラスはどれですか?


スレッドセーフ classは、クラスの内部状態とメソッドからの戻り値が、複数のスレッドから同時に呼び出されているときに正しいことを保証するクラスです。 スレッドセーフのコレクションクラス Javaではスタックです 、ベクタープロパティハッシュテーブル 、など。

スタック スタック Javaのクラスは、 LIFOの原則に基づくスタックデータ構造を実装します。 。つまり、スタック クラスは、プッシュ、ポップ、ピーク、検索、空などの多くの操作をサポートできます 、など。

import java.util.*;
public class StackTest {
   public static void main (String[] args) {
      Stack<Integer> stack = new Stack<Integer>();
      stack.push(5);
      stack.push(7);
      stack.push(9);
      Integer num1 = (Integer)stack.pop();
      System.out.println("The element popped is: " + num1);
      Integer num2 = (Integer)stack.peek();
      System.out.println(" The element on stack top is: " + num2);
   }
}
出力
The element popped is: 9
The element on stack top is: 7


ベクター 必要に応じて成長するオブジェクトの配列 Vectorによって実装されます Javaのクラス。 Vectorクラスは、 add()、remove()、get()、elementAt()、size()などのメソッドをサポートできます。 、など

import java.util.*;
public class VectorTest {
   public static void main(String[] arg) {
      Vector vector = new Vector();
      vector.add(9);
      vector.add(3);
      vector.add("ABC");
      vector.add(1);
      vector.add("DEF");
      System.out.println("The vector is: " + vector);
      vector.remove(1);
      System.out.println("The vector after an element is removed is: " + vector);
   }
}
出力
The vector is: [9, 3, ABC, 1, DEF]
The vector after an element is removed is: [9, ABC, 1, DEF]

  1. SwingはJavaでスレッドセーフですか?

    いいえ、 Java Swing コンポーネントはJavaではスレッドセーフではありません。 Swingコンポーネントがスレッドセーフではない理由 Java Swingがスレッドセーフではない主な理由の1つは、そのコンポーネントを拡張するタスクを簡素化することです。 Java Swingのもう1つの理由は、ロックの取得と解放、および状態の復元に伴うオーバーヘッドのため、スレッドセーフではありません。 。 一部のJavaSwingコンポーネントメソッドは、 repaint()、revalidate()などのマルチスレッドアクセスをサポートします。 、および invalidate()メソッド

  2. Javaのパッケージ

    パッケージは、名前の競合を防ぎ、アクセスを制御し、クラス、インターフェイス、列挙、アノテーションの検索/検索と使用を容易にするためなどにJavaで使用されます。 パッケージは、アクセス保護と名前空間管理を提供する関連タイプ(クラス、インターフェイス、列挙、および注釈)のグループとして定義できます。 Javaの既存のパッケージのいくつかは-です java.lang-基本クラスをバンドルします java.io-入出力関数のクラスは、このパッケージにバンドルされています プログラマーは独自のパッケージを定義して、クラス/インターフェースなどのグループをバンドルできます。プログラマーがクラ