1
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import javax.swing.JOptionPane;
public class HashMapDemo {
public static double runProcess;
public static int ID = 0;
public static void processHashMap() {
HashMap < Integer, ArrayList <String>> students = new HashMap < >();
List <String> arr = new ArrayList < > (100);
int x = 0;
while (ID != -1) {
String uData = JOptionPane.showInputDialog("Please enter your Student ID and Course Number (Seperated by a space) or enter -1 to view list: ");
String[] splitter = uData.split(" ");
ID = Integer.parseInt(splitter[0]);
arr.add(0, splitter[1]);
students.put(ID, (ArrayList <String>) arr);
x++;
}
System.out.println(Arrays.asList(students));
}
public static void main(String[] args) {
processHashMap();
}
}
出力は[{-1 = [Test3は、Test2を、Test1を、試験]、10 = [Test3は、Test2を、Test1を、試験]、11 = [Test3は、Test2を、Test1を、試験] }]JavaのハッシュマップのArrayList
誰かがID「10 Test」「10 Test2」「100 Test3」10を入力すると、10 = [Test2、Test]となるように、各IDにそれを指定しようとしています。 100 = [Test3は]
(コメントに従ってください)、以下のようにあなたがHashMap
から
ID
、その後
add
それに新しい要素を持つ既存の
ArrayList
を取得する必要があります
ループ内の各生徒に新しいArrayListを作成します。あなたは同じarraylistに再利用して追加しているようです。 – yogidilip
これはかなりあなたのための解決策です –