How can I create a list (or some other type of container) of integer and strings pairs that allows duplicates in both pairs and can be sorted by the integer value?
I need to fill a container with names (string) and scoring (integer) pairs, the container must allow duplicated values in both name and scoring, and i need to sort this list by the scoring value.
I tried with a SortedMap but doesn’t allow duplicated values:
SortedMap<Integer,String> sm=new TreeMap<Integer, String>();
sm.put(23, "Peter");
sm.put(11, "Tony");
sm.put(110, "Claire");
sm.put(13, "ferca");
sm.put(55, "Julian");
sm.put(13, "Pedro");
In this example, ferca and Pedro have the same scoring value, this is something I need to allow, but the SortedMap overwrites “ferca” with “Pedro”.
What is the best container type to do this?
Since you want your collection to be ordered, I suggest you use a
ListandCollections.sort. If you decide to go for this approach you still have two options:Comparatorthat can be passed as an argument tosort, orScoreclass implementComparable<Score>Here is an example and ideone demo of the latter approach: