Data structure for Statistics and Achievements system
===

 I'm implementing an Statistics + Achievements system. Basically the structure is:

 - An Achievement have many related Statistics, this relations must associate each Achievement with the required Statistics (and it value). For example the Achievement1 needs the Statistic1 with value 50 (or greater)  and the Statistic2 with value 100 (or greater).
 - Given an Statistic I need also know what are the related Achievements (in order to check them when the Statistic changes.

Both Stats and Achievements have an unique id.

My problem is I don´t know whats the best data(s) structure(s) for representing that. By the way I'm using:

    SparseArray<HashMap<Statistic, Integer>> statisticsForAnAchievement;

For the first point where the index of the array is the Achievement ID and the HashMap contains the Statistic/TargetValue pairs. And a:


	SparseArray<Collection<Achievement>> achievementsRelatedToAStatistic;
For the second point where the index is the StatisticID and the item is the collection of Achievements related.

Then I need to handle both objects keeping it coherence. 

Is there an easier way of representing that? Thanks