To create the JSON you ask, you need to insert a JSONObject into a JSONArray. So for each Entry of your Map<String, String>, create a JSONObject like {"address": entry.key, "domain": entry.value} and add those to a JSONArray.
Let's use a Stream.map to create that object and insert the result into the array directly:
public static JSONObject createJson(Map<String, String> value) {
    JSONObject result = new JSONObject();
    JSONArray addresses = new JSONArray();
    result.put("addresses", addresses);
    value.entrySet().stream()       //iterate the map
        .map(e -> {                 //build an object
            JSONObject address = new JSONObject();
            address.put("address", e.getKey());
            address.put("domain", e.getValue());
            return address;
        })
        .forEach(addresses::put);   //insert into the array
    return result;
}
And test it with :
public static void main(String[] args) {
    Map<String, String> values = new HashMap<>();
    values.put("876234876", "google");
    values.put("mike@hotmail", "hotmail");
    values.put("9879892", "google");
    System.out.println(createJson(values).toString(4));
}
And the result :
{"addresses": [
    {
        "address": "9879892",
        "domain": "google"
    },
    {
        "address": "876234876",
        "domain": "google"
    },
    {
        "address": "mike@hotmail",
        "domain": "hotmail"
    }
]}
Using the API : JSON In Java
<!-- https://mvnrepository.com/artifact/org.json/json -->
<dependency>
    <groupId>org.json</groupId>
    <artifactId>json</artifactId>
    <version>20180130</version>
</dependency>