For a single application, a HashMap is serializable and can be saved to a file then read later. You don't need to save your whole class, just the HashMap. Your class can still manage the HashMap.
HashMap works on key-value pairs. (e.g. key = "password" and value = "secret")
From what you describe, you have a set of known parameters you want to save, so when you load your HashMap you can lookup the values using the key, it is fast. You would not need to iterate. But you can iterate on a HashMap if you needed to.
To store configurations for multiple systems you could have a collection (e.g. ArrayList) of HashMaps. ArrayList is also serializable so you can write the entire list to a file and retrieve it, and it is very simple to iterate.
To have a custom way of ordering your selections, a priority queue with a custom comparator allows that. If you wanted to randomize the selection method I think this would require creating parallel priority queues referring to the same content, but each with different comparator methods, then randomly choose which queue to read from. I am thinking along the lines of a database table with multiple indices. You have the same set of rows but depending which index you choose you can traverse them in different ways.
If you are thinking of having a configuration shared by multiple systems you probably want to store your configuration in a database, but it sounds like this is not the case.