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

マップを値でソートするJavaプログラム


この記事では、マップを値で並べ替える方法を理解します。 Java HashMapは、JavaのMapインターフェースのハッシュテーブルベースの実装です。これは、キーと値のペアのコレクションです。

以下は同じのデモンストレーションです-

入力がであると仮定します −

Input HashMap:
Key = Java, Value = 45
Key = Scala, Value = 20
Key = Mysql, Value = 11
Key = Python, Value = 75

必要な出力は

The HashMap after sorting is:
Key = Mysql, Value = 11
Key = Scala, Value = 20
Key = Java, Value = 45
Key = Python, Value = 75

アルゴリズム

Step 1 - START
Step 2 - Declare namely
Step 3 - Define the values.
Step 4 - Use the ‘sort’ method to sort the elements of the map.
Step 5 - Use the ‘getValue’ method to fetch the values and use the ‘compareTo’ method to comare two values.
Step 6 - Iterate through the hashmap, and use the ‘getKey’ method to fetch the values into ‘temp’. Use ‘temp’ as the return value.
Step 7 - Display the result
Step 8 - Stop

例1

ここでは、「main」関数の下ですべての操作をバインドします。

import java.util.*;
import java.lang.*;
public class Demo {
   public static HashMap<String, Integer> sort(HashMap<String, Integer> input_map){
      List<Map.Entry<String, Integer> > list =
      new LinkedList<Map.Entry<String, Integer> >(input_map.entrySet());
      Collections.sort(list, new Comparator<Map.Entry<String, Integer> >() {
         public int compare(Map.Entry<String, Integer> o1,
         Map.Entry<String, Integer> o2){
            return (o1.getValue()).compareTo(o2.getValue());
         }
      });
      HashMap<String, Integer> temp = new LinkedHashMap<String, Integer>();
      for (Map.Entry<String, Integer> aa : list) {
         temp.put(aa.getKey(), aa.getValue());
      }
      return temp;
   }
   public static void main(String[] args){
      HashMap<String, Integer> input_map = new HashMap<String, Integer>();
      input_map.put("Java", 45);
      input_map.put("Scala", 20);
      input_map.put("Mysql", 11);
      input_map.put("Python", 75);
      System.out.println("The HashMap is defined as:");
      for (Map.Entry<String, Integer> element : input_map.entrySet()) {
         System.out.println("Key = " + element.getKey() + ", Value = " + element.getValue());
      }
      Map<String, Integer> result_map = sort(input_map);
      System.out.println("\nThe HashMap after sorting is:");
      for (Map.Entry<String, Integer> element : result_map.entrySet()) {
         System.out.println("Key = " + element.getKey() + ", Value = " + element.getValue());
      }
   }
}

出力

The HashMap is defined as:
Key = Java, Value = 45
Key = Scala, Value = 20
Key = Mysql, Value = 11
Key = Python, Value = 75

The HashMap after sorting is:
Key = Mysql, Value = 11
Key = Scala, Value = 20
Key = Java, Value = 45
Key = Python, Value = 75

例2

ここでは、操作をオブジェクト指向プログラミングを示す関数にカプセル化します。

import java.util.*;
import java.lang.*;
public class Demo {
   public static void main(String[] args){
      HashMap<String, Integer> input_map = new HashMap<String, Integer>();
      input_map.put("Java", 45);
      input_map.put("Scala", 20);
      input_map.put("Mysql", 11);
      input_map.put("Python", 75);
      System.out.println("The HashMap is defined as:");
      for (Map.Entry<String, Integer> element : input_map.entrySet()) {
         System.out.println("Key = " + element.getKey() + ", Value = " + element.getValue());
      }
      List<Map.Entry<String, Integer> > list =
      new LinkedList<Map.Entry<String, Integer> >(input_map.entrySet());
      Collections.sort(list, new Comparator<Map.Entry<String, Integer> >() {
         public int compare(Map.Entry<String, Integer> o1,
         Map.Entry<String, Integer> o2){
            return (o1.getValue()).compareTo(o2.getValue());
         }
      });
      HashMap<String, Integer> result_map = new LinkedHashMap<String, Integer>();
      for (Map.Entry<String, Integer> aa : list) {
         result_map.put(aa.getKey(), aa.getValue());
      }
      System.out.println("\nThe HashMap after sorting is:");
      for (Map.Entry<String, Integer> element : result_map.entrySet()) {
         System.out.println("Key = " + element.getKey() + ", Value = " + element.getValue());
      }
   }
}

出力

The HashMap is defined as:
Key = Java, Value = 45
Key = Scala, Value = 20
Key = Mysql, Value = 11
Key = Python, Value = 75

The HashMap after sorting is:
Key = Mysql, Value = 11
Key = Scala, Value = 20
Key = Java, Value = 45
Key = Python, Value = 75

  1. バイナリ挿入ソート用のJavaプログラム

    バイナリ挿入ソートは、バイナリ検索を使用して、反復ごとに特定のインデックスに要素を挿入するための適切な位置を見つけます。まず、要素を挿入する必要がある場所を見つけます。次に、要素は次の正しい位置に移動されます。これで、特定の要素がその位置に配置されます。 以下は、バイナリ挿入ソートのJavaコードです- 例 public class Demo{    void Cocktail_Sort(int my_arr[]){       boolean swapped = true;       int start =

  2. カクテルソート用のJavaプログラム

    カクテルソートは、要素が左から右に繰り返され、最大の要素が最初に正しい位置に移動されるバブルソートとは対照的に機能します。シェーカーソートでは、要素が交互に両方向(左と右)に繰り返されます。 以下は、カクテルソートのプログラムです- 例 public class Demo{    static int temp;    static void Cocktail(int a[], int n){       boolean swap = true;       int begin = 0,i;