適切にハッシュマップに保存し、ループにツリーマップに上書きコピーし、キーと値を表示する方法

cr1stian:

私は内部のキー/値を通過して表示、それからループにして、ツリーマップを構築するためにそれを使用して、その後ハッシュマップへのユーザー入力を格納しています。代わりに、私は入力された2件の最新のユーザデータを表示/ストアに管理します。

import java.util.Scanner;
import java.util.HashMap;
import java.util.TreeMap;
import java.util.Map;

public class Lab09 {
    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);
        int studentNbr = 0;
        int scoreNbr = 0;
        String name = "";

        HashMap<String, Integer> students = new HashMap<String, Integer>();


        System.out.println("How many students do you want to enter?");
        studentNbr = input.nextInt();
        input.nextLine();

        System.out.println("How many scores do you want to enter for each student?");
        scoreNbr = input.nextInt();
        input.nextLine();

        for(int i = 0; i < studentNbr; i++){
            System.out.println("Enter student number " + (i+1) + " name:");
            name = input.nextLine();
            int j = 0;
            while(j < scoreNbr){
                System.out.println("Enter score " + (j+1) + " for " + name + ":");
                students.put(name, input.nextInt());
                input.nextLine();
                j++;
            }

        }
        Map<String, Integer> sorted = new TreeMap<String, Integer>(students);
        for (String i : sorted.keySet()) {
            System.out.println("key: " + i + " value: " + sorted.get(i));
        }

    }
}

私はすべてのキー/値を表示できることを期待していますが代わりにのみ代わりに、データがユーザーによってに入れ、すべての最新のユーザ入力を表示する2行を受け取ります。

Peeyush:

「キー」は同一である場合には、JavaのHashMapのは、新しい「価値」で、前の「値」を置き換えます。あなたは生徒の名前とスコアのIDで「学生のマップの複合キーを作成することができます。例えば

  students.put(name+'-'+j, input.nextInt());

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=333648&siteId=1