Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

You have a list of student ID\'s followed by the course number (separated by a s

ID: 3818964 • 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

import java.io.FileReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Scanner;


public class StudentCourseHashMap {

public static void main(String[] args)
{
HashMap<Integer, ArrayList<String>> students = new HashMap<Integer, ArrayList<String>>();
  
Scanner sc = new Scanner(System.in);
  
while(true)
{
String course;
String line = sc.nextLine();
String[] parts = line.split("\s+");
Integer id = Integer.parseInt(parts[0]);
if (id == -1)
{
break;
}
  
ArrayList<String> courseList = students.get(id);
if(courseList == null)
{
courseList = new ArrayList<>();
}
courseList.add(parts[1]);
students.put(id, courseList);
}
  
for(Integer id: students.keySet())
{
System.out.println(id + " " + students.get(id).toString());
}
}
  
}

// Sample execution

1 CS100
2 Math210
2 CS105
1 CS200
-1
1 [CS100, CS200]
2 [Math210, CS105]

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote