Search code examples
javagraphhashmap

Scanning input in HashMap of String and ArrayList


I need to add all these cities in a HashMap of String and ArrayList

I/P:    Banglore Hyderabad
        Banglore Chennai
        Hyderabad Mumbai
        Hyderabad Delhi
        Chennai Kerela

And I am unable to add these , I have the structure

import java.util.*;

public class Main {

    public static void main() {
        Scanner in = new Scanner(System.in);
        
        HashMap<String, ArrayList<String>> adj = new HashMap<String, ArrayList<String>>();
      
    }
}
       

So now i need to add banglore and then if banglore is present i will add Hyderabad to the ArrayList and again I'll scan for the next element again banglore is present so add Chennai to the ArrayList.

There is already a question of creating a HashMap of String and ArrayList but firstly it is List of HashMap and Secondly no one there have shown how to add.


Solution

  • Try this.

    static void add(Map<String, List<String>> map, String key, String value) {
        map.computeIfAbsent(key, k -> new ArrayList<>()).add(value);
    }
    
    public static void main(String[] args) {
        Map<String, List<String>> map = new HashMap<>();
        add(map, "Banglore", "Hyderabad");
        add(map, "Banglore", "Chennai");
        add(map, "Hyderabad", "Mumbai");
        add(map, "Hyderabad", "Delhi");
        add(map, "Chennai", "Kerela");
        System.out.println(map);
    }
    

    output:

    {Banglore=[Hyderabad, Chennai], Chennai=[Kerela], Hyderabad=[Mumbai, Delhi]}