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

JavaでのSet/HashSetの内部動作


セットデータ構造は、一意の値のみを格納するために使用されます。つまり、重複する値がセットに格納されることはありません。 HashSetが作成されると、HashMapを内部的に実装します。 「追加」関数を使用して、要素をHashSetに挿入できます。 HashMapは内部で作成されているため、これは内部で「put」関数を呼び出します。したがって、SetはHashMapを使用して一意の値を取ります。

HashMapには、一意のキーと値のペアが含まれています。キーと値のペアは、「put」関数を使用して挿入されます。 「put」関数を呼び出すと、キーにマッピングが存在するかどうかに応じて、キーまたはnullに関連付けられた以前の値が返されます。

LinkedHashSetはHashSetクラスに拡張されます。つまり、LinkedHashSetは、「スーパー」関数を使用してHashSetクラスのコンストラクターを呼び出します。

import java.util.HashSet;
public class Demo{
   public static void main(String args[]){
      HashSet my_hashset = new HashSet();
      boolean my_b1 = my_hashset.add("only");
      boolean my_b2 = my_hashset.add("sample");
      boolean my_b3 = my_hashset.add("sample");
      System.out.println("The value of first boolean is " + my_b1);
      System.out.println("The value of second boolean is = "+my_b2);
      System.out.println("The value of third boolean is = "+my_b3);
      System.out.println(my_hashset);
   }
}

出力

The value of first boolean is true
The value of second boolean is = true
The value of third boolean is = false
[only, sample]

Demoという名前のクラスには、HashSetのインスタンスが定義されているmain関数が含まれています。要素は、「追加」機能を使用してハッシュセットに追加されます。これらの要素が画面に表示されます。


  1. Javaでのリストとセットの違い

    両方のインターフェイスの一覧表示と設定は、コレクションフレームワークに属しています。どちらのインターフェースもコレクションインターフェースを拡張します。これらは両方とも、オブジェクトのコレクションを単一のユニットとして格納するために使用されます。 jdk1.2より前は、オブジェクトを単一のユニットとしてグループ化するために、配列、ベクトル、およびハッシュテーブルを使用していました。 Sr。いいえ。 キー リスト 設定 1 位置アクセス リストは、コレクション内の要素への位置アクセスを提供します。 Setは、コレクション内の要素への位置アクセスを提供しません

  2. Pythonの内部動作

    この記事では、Pythonの内部動作と、Pythonインタープリターによってさまざまなオブジェクトがメモリ内のスペースに割り当てられる方法について学習します。 Pythonは、Javaのようなオブジェクト指向プログラミング構築言語です。 Pythonはインタプリタを使用するため、インタプリタ言語と呼ばれます。 Pythonは、読みやすさを向上させ、時間とスペースの複雑さを最小限に抑えるために、ミニマリズムとモジュール性をサポートしています。 Pythonの標準実装は「cpython」と呼ばれ、cコードを使用してPythonで出力を取得できます。 Pythonは、ソースコードを一連のバイトコ