1. import java.util.HashMap;
  2. import java.util.Map;
  3. import java.util.ArrayList;
  4. import java.util.List;
  5. public class CommandLineIndexer {
  6. public static class Option {
  7. String name;
  8. List<String> values;
  9. public Option(String name) {
  10. this.name = name;
  11. this.values = new ArrayList<>();
  12. }
  13. }
  14. public static Map<String, List<String>> indexOptions(String[] args) {
  15. Map<String, List<String>> options = new HashMap<>();
  16. if (args == null || args.length == 0) {
  17. return options; // Return empty map if no arguments
  18. }
  19. for (int i = 0; i < args.length; i++) {
  20. String arg = args[i];
  21. if (arg.startsWith("--")) {
  22. String optionName = arg.substring(2); // Remove "--"
  23. if (!options.containsKey(optionName)) {
  24. options.put(optionName, new ArrayList<>());
  25. }
  26. if (i + 1 < args.length) {
  27. String value = args[i + 1];
  28. options.get(optionName).add(value);
  29. i++; // Skip the value
  30. }
  31. }
  32. }
  33. return options;
  34. }
  35. public static void main(String[] args) {
  36. Map<String, List<String>> indexedOptions = indexOptions(args);
  37. for (Map.Entry<String, List<String>> entry : indexedOptions.entrySet()) {
  38. String optionName = entry.getKey();
  39. List<String> values = entry.getValue();
  40. System.out.println("Option: " + optionName + ", Values: " + values);
  41. }
  42. }
  43. }

Add your comment