You have a list of student ID\'s followed by the course number (separated by a s
ID: 3818965 • Letter: Y
Question
You have a list of student ID's followed by the course number (separated by a space) that the student is enrolled in. The listing is in no particular order. For example, if student 1 is in CS100 and CS200 while student 2 is in CS105 and MATH210 then the list might look like this: 1 CS100 2 MATH210 2 CS105 1 CS200 Write a program that reads data in this format from the console. If the ID is -1 then stop inputting data. Use the HashMap class to map from an Integer (the student ID) to an AirayList of type String that holds each class that the student is enrolled in. The declaration should look like this: HashMap students = new HashMap(); After all data is input, iterate through the map and output the student ID and all classes stored in the vector for that student. The result should be a list of classes organized by student ID.Explanation / Answer
/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
class Ideone
{
public static void main (String[] args) throws java.lang.Exception
{
HashMap<Integer,ArrayList<String>> map=new HashMap<Integer,ArrayList<String>>();
Scanner input = new Scanner(System.in);
int option = input.nextInt();
while (option != -1) {
String str1 = input.nextLine();
if (map.get(option) == null) {// if student ID is not yet hashed
map.put(option, new ArrayList<String>());// insert student id to hash
} map.get(option).add(str1);// Add courses to respective student id
option = input.nextInt();
}
for (Map.Entry<Integer, ArrayList<String>> ee : map.entrySet()) {
Integer key = ee.getKey();
List<String> values = ee.getValue();
for(int i = 0; i < values.size(); i++) {
System.out.println(key + values.get(i));// print student id and course
}
}
}
}
Output:
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.