1. import java.util.ArrayList;
  2. import java.util.HashMap;
  3. import java.util.List;
  4. import java.util.Map;
  5. public class DatasetMerger {
  6. /**
  7. * Merges multiple datasets of form fields into a single dataset.
  8. *
  9. * @param datasets A list of datasets, where each dataset is a map of field names to values.
  10. * @return A merged dataset, which is a map of field names to values. Returns an empty map if input is null or empty.
  11. */
  12. public static Map<String, String> mergeDatasets(List<Map<String, String>> datasets) {
  13. // Handle null or empty input
  14. if (datasets == null || datasets.isEmpty()) {
  15. return new HashMap<>(); // Return an empty map if no datasets are provided.
  16. }
  17. // Initialize the merged dataset
  18. Map<String, String> mergedDataset = new HashMap<>();
  19. // Iterate through each dataset
  20. for (Map<String, String> dataset : datasets) {
  21. // Iterate through each field in the current dataset
  22. for (Map.Entry<String, String> entry : dataset.entrySet()) {
  23. String fieldName = entry.getKey();
  24. String fieldValue = entry.getValue();
  25. // Update the merged dataset. If the field already exists, overwrite the value.
  26. mergedDataset.put(fieldName, fieldValue);
  27. }
  28. }
  29. return mergedDataset;
  30. }
  31. public static void main(String[] args) {
  32. // Example Usage
  33. Map<String, String> dataset1 = new HashMap<>();
  34. dataset1.put("name", "Alice");
  35. dataset1.put("age", "30");
  36. Map<String, String> dataset2 = new HashMap<>();
  37. dataset2.put("city", "New York");
  38. dataset2.put("occupation", "Engineer");
  39. Map<String, String> dataset3 = new HashMap<>();
  40. dataset3.put("name", "Bob");
  41. dataset3.put("country", "USA");
  42. List<Map<String, String>> datasets = new ArrayList<>();
  43. datasets.add(dataset1);
  44. datasets.add(dataset2);
  45. datasets.add(dataset3);
  46. Map<String, String> merged = mergeDatasets(datasets);
  47. // Print the merged dataset
  48. System.out.println(merged); // Expected output: {name=Bob, age=30, city=New York, occupation=Engineer, country=USA}
  49. }
  50. }

Add your comment