Mam następującą mapę:
Map<Double, List<SoundEvent>> soundEventCells = new HashMap<Double, List<SoundEvent>>();
Ten HashMapmapy doublewartości (które są punktami, w czasie) do odpowiadającej SoundEvent„komórki”: każdy z „komórek” może zawierać kilka SoundEventsekund. Dlatego jest zaimplementowany jako List<SoundEvent>, ponieważ właśnie tak jest.
Ze względu na lepszą czytelność kodu pomyślałem o zaimplementowaniu bardzo prostej statycznej klasy wewnętrznej, takiej jak:
private static class SoundEventCell {
private List<SoundEvent> soundEvents = new ArrayList<SoundEvent>();
public void addEvent(SoundEvent event){
soundEvents.add(event);
}
public int getSize(){
return soundEvents.size();
}
public SoundEvent getEvent(int index){
return soundEvents.get(index);
}
// .. remove() method unneeded
}
I wtedy deklaracja mapy (i wiele innych kodów) wyglądałaby lepiej, na przykład:
Map<Double, SoundEventCell> soundEventCells = new HashMap<Double, SoundEventCell>();
Czy to przesada? Czy zrobiłbyś to w swoich projektach?
private staticdlatego, że będzie używana tylko przez klasę zewnętrzną, ale nie jest związana z żadnym konkretnym wystąpieniem klasy zewnętrznej. Czy to nie jest właściwe użycie private static?