import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class DatasetMerger {
/**
* Merges multiple datasets of form fields into a single dataset.
*
* @param datasets A list of datasets, where each dataset is a map of field names to values.
* @return A merged dataset, which is a map of field names to values. Returns an empty map if input is null or empty.
*/
public static Map<String, String> mergeDatasets(List<Map<String, String>> datasets) {
// Handle null or empty input
if (datasets == null || datasets.isEmpty()) {
return new HashMap<>(); // Return an empty map if no datasets are provided.
}
// Initialize the merged dataset
Map<String, String> mergedDataset = new HashMap<>();
// Iterate through each dataset
for (Map<String, String> dataset : datasets) {
// Iterate through each field in the current dataset
for (Map.Entry<String, String> entry : dataset.entrySet()) {
String fieldName = entry.getKey();
String fieldValue = entry.getValue();
// Update the merged dataset. If the field already exists, overwrite the value.
mergedDataset.put(fieldName, fieldValue);
}
}
return mergedDataset;
}
public static void main(String[] args) {
// Example Usage
Map<String, String> dataset1 = new HashMap<>();
dataset1.put("name", "Alice");
dataset1.put("age", "30");
Map<String, String> dataset2 = new HashMap<>();
dataset2.put("city", "New York");
dataset2.put("occupation", "Engineer");
Map<String, String> dataset3 = new HashMap<>();
dataset3.put("name", "Bob");
dataset3.put("country", "USA");
List<Map<String, String>> datasets = new ArrayList<>();
datasets.add(dataset1);
datasets.add(dataset2);
datasets.add(dataset3);
Map<String, String> merged = mergeDatasets(datasets);
// Print the merged dataset
System.out.println(merged); // Expected output: {name=Bob, age=30, city=New York, occupation=Engineer, country=USA}
}
}
Add your comment