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

Kotlinでハッシュマップを反復処理する方法は?


マップは、データがキーと値のペアとして格納され、対応するキーが一意である必要があるコレクションです。 HashMapは、MutableMapインターフェースに基づくコレクション・クラスであり、HashTableのMutableMapインターフェースを実装することによってそれを行います。 Kotlinには、HashMapを定義および操作するための4種類のコンストラクターが用意されています。

  • HashMap() –これは、空のHashMapを作成するのに役立つデフォルトのコンストラクターです。

  • HashMap(initialCapacity:Int、loadFactor:Float =0f) –初期容量を使用してHashMapを作成するのに役立ちます。提供されていない場合は無視され、デフォルトのHashMap()として機能します。

  • HashMap(initialCapacity:Int) –指定された容量のHashMapを作成するのに役立ちます。

  • HashMap(元の:マップ –マップで指定されたHashMapのインスタンスを作成します。

ここでは、 HashMap()を使用します HashMapとそれに対応するPut()を作成するコンストラクター 同じものにいくつかのKey-Valueデータを入力します。この例では、サブジェクト名と個人の好みの番号を保持する「サブジェクト」のコレクションを作成します。 Kotlinライブラリで利用可能なさまざまなオプションを使用して、このHashMapを繰り返し処理します。

for()ループの使用を繰り返す

従来のプログラミング言語では、 for()があります コレクションのいずれかをトラバースするためにループします。次の例では、 for()を使用してマップをトラバースします。 ループ。

fun main(args: Array<String>) {
   //Declare HashMap
   var subject : HashMap<String, Int>
      = HashMap<String, Int> ();

   //Assigning value to HashMap
   subject.put("Java" , 1);
   subject.put("Kotlin" , 2);
   subject.put("Python" , 3);
   subject.put("C++" , 4);
   subject.put("SQL" , 5);

   //iterate through for loop
   println("---------iterate using for Loop------------\n")
   for ((k, v) in subject) {
      println(" Subject Name -> $k and its preference -> $v")
   }
   println("\n\n")
}

出力

コードを実行すると、次の出力が生成されます-

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar

---------iterate using for Loop------------
Subject Name -> Java and its preference -> 1
Subject Name -> C++ and its preference -> 4
Subject Name -> Kotlin and its preference -> 2
Subject Name -> Python and its preference -> 3
Subject Name -> SQL and its preference -> 5

ForEach()ループを使用して反復する

for()ループに加えて、ForEach()を使用してコレクションを介して伝播することもできます。次の例では、forEach()ループを使用してマップをトラバースします。

fun main(args: Array<String>) {
   //Declare HashMap
   var subject : HashMap<String, Int>
      = HashMap<String, Int> ();

   //Assigning value to HashMap
   subject.put("Java" , 1);
   subject.put("Kotlin" , 2);
   subject.put("Python" , 3);
   subject.put("C++" , 4);
   subject.put("SQL" , 5);

   //iterate using forEach
   println("------iterate using forEach Method---------\n")
   subject.forEach { (k, v) ->
      println(" Subject Name -> $k and its preference -> $v")
   }
   println("\n\n")
}

出力

コードを実行すると、次の出力が生成されます-

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar

------iterate using forEach Method---------
Subject Name -> Java and its preference -> 1
Subject Name -> C++ and its preference -> 4
Subject Name -> Kotlin and its preference -> 2
Subject Name -> Python and its preference -> 3
Subject Name -> SQL and its preference -> 5

iterator()メソッドの使用

コレクションをトラバースする上記の従来の方法とは別に、Kotlin標準ライブラリは iterator()と呼ばれる関数も提供します。 これを使用して、コレクション内のオブジェクトの値を公開せずにオブジェクトにアクセスできます。これは、コレクションのすべての値にアクセスするための最も効率的な方法です。次の例では、 iterator()を使用してハッシュマップをトラバースします。 メソッド。

fun main(args: Array<String>) {
   //Declare HashMap
   var subject : HashMap<String, Int>
      = HashMap<String, Int> ();

   //Assigning value to HashMap
   subject.put("Java" , 1);
   subject.put("Kotlin" , 2);
   subject.put("Python" , 3);
   subject.put("C++" , 4);
   subject.put("SQL" , 5);

   //using iterator() method
   println("-----------Using iterator() Method-----------\n")
   val i = subject.keys.iterator()
   while (i.hasNext()) {
      val key = i.next()
      val value = subject[key]
      println("Subject Name -> ${key} and its preference -> $value")
   }
}
>

出力

コードを実行すると、次の出力が生成されます-

$kotlinc -nowarn main.kt -include-runtime -d main.jar
$java -Xmx128M -Xms16M -jar main.jar

-----------Using iterator() Method-----------
Subject Name -> Java and its preference -> 1
Subject Name -> C++ and its preference -> 4
Subject Name -> Kotlin and its preference -> 2
Subject Name -> Python and its preference -> 3
Subject Name -> SQL and its preference -> 5

  1. Androidのシングルトンにハッシュマップを保存する方法は?

    例に入る前に、シングルトンデザインパターンとは何かを知っておく必要があります。シングルトンは、クラスのインスタンス化を1つのインスタンスのみに制限するデザインパターンです。注目すべき用途には、同時実行性の制御や、アプリケーションがデータストアにアクセスするための中央アクセスポイントの作成などがあります。 この例は、Androidのシングルトンにハッシュマップを保存する方法を示しています ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −

  2. AndroidでJSON配列を繰り返す方法は?

    この例は、AndroidでJSON配列を反復処理する方法を示しています。 ステップ1 − Android Studioで新しいプロジェクトを作成し、[ファイル]⇒[新しいプロジェクト]に移動して、新しいプロジェクトを作成するために必要なすべての詳細を入力します。 ステップ2 −次のコードをres / layout/activity_main.xmlに追加します。 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="https://sche