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());