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

TreeMapを使用してJavaでユーザー定義オブジェクトをソートする


Javaでユーザー定義オブジェクトをソートするためのコードは、次のとおりです-

import java.io.*;
import java.util.*;
public class Demo{
   static void sort_objects(String my_data){
      String[] my_vals = my_data.split(" ");
      Map<Integer, ArrayList<String> > my_map = new TreeMap<>();
      for (int i = 1; i < my_vals.length; i += 2){
         int my_age = Integer.parseInt(my_vals[i]);
         String name = my_vals[i - 1];
         if (my_map.containsKey(my_age)){
            ArrayList<String> my_list = my_map.get(my_age);
            my_list.add(name);
            Collections.sort(my_list);
            my_map.remove(my_age);
            my_map.put(my_age, my_list);
         }
         else{
            ArrayList<String> my_list = new ArrayList<>();
            my_list.add(name);
            my_map.put(my_age, my_list);
         }
      }
      for (Map.Entry<Integer, ArrayList<String> > entry : my_map.entrySet()){
         ArrayList<String> al1 = entry.getValue();
         for (int i = 0; i < al1.size(); i++)
         System.out.print(al1.get(i) + " " + entry.getKey() + " ");
      }
   }
   public static void main(String args[]){
      String my_obj = "Joe 36 Hannah 24 Jill 13 Jack 1 Preet 8 Deep 45";
      System.out.println("The objects after sorting are : ");
      sort_objects(my_obj);
   }
}

出力

The objects after sorting are :
Jack 1 Preet 8 Jill 13 Hannah 24 Joe 36 Deep 45

Demoという名前のクラスには、「sort_objects」という名前の関数が含まれており、整数と配列リストをマップするハッシュマップを作成します。値を繰り返し処理し、文字列と整数要素を確認します。これらは整数値に基づいて並べ替えられます。 main関数では、文字列オブジェクトが作成され、この文字列オブジェクトで関数が呼び出され、関連するメッセージがコンソールに表示されます。


  1. JavaでGsonを使用するカスタムインスタンスクリエーター?

    Javaオブジェクトとの間でJSON文字列を解析している間、デフォルトでは、Gsonはデフォルトコンストラクタを呼び出してJavaクラスのインスタンスを作成しようとします。 。 Javaクラスにデフォルトのコンストラクタが含まれていない場合、またはJavaオブジェクトの作成中に初期構成を行いたい場合は、独自のインスタンス作成者を作成して登録する必要があります。 InstanceCreator を使用して、Gsonでカスタムインスタンスクリエーターを作成できます インターフェース createInstanceを実装する必要があります (タイプタイプ )メソッド。 構文 T createIn

  2. Javaで事前定義されたメソッドを使用せずに文字列をソートするにはどうすればよいですか?

    文字列は、不変を表すオブジェクトです。 文字のシーケンスであり、一度作成すると変更できません。 java.lang.String クラスを使用して文字列オブジェクトを作成できます。 以下のプログラムでは、事前定義されたメソッドを使用せずに文字列の文字を並べ替えることができます。 JavaのStringクラスの例。 例 public class SortStringWithoutPredefinedMethodsTest {    public static void main(String[] args) {       String st