En samling med collection

En samling med collection
mars 28, 2012 squeedconfig

Jämför

HashMap<K,ArrayList<V>> things = new HashMap<K,ArrayList<V>>();
private void add(K key, V thing) {
  ArrayList<V> thingsForKey = things.get(key);
  if (!things.containsKey(key)) {
    thingsForKey = new ArrayList<V>();
    things.put(key, thingsForKey);
  }
  thingsForKey.add(thing);
}

med

HashMap<K,ArrayList<V>> things = new HashMap<K,ArrayList<V>>();
private void add_New_Style(K key, V thing) {
  if (!things.containsKey(key)) {
    things.put(key, new ArrayList<V>());
  }
  things.get(key).add(thing);
}

Den första varianten ser man ofta, och jag har själv använt den. Häromdagen upptäckte en kollega och jag att vi, utan att tänka på det, skrivit variant 2. (Vi arbetade testdrivet just där). Snyggare och enklare tycker jag. Ingen stor skillnad iofs, men ändå.

1 Kommentar

  1. Fredrik Wendt 6 år sedan

    Din kollega säger:
    * en variant på första är väl en null-check istället för containsKey också,
    * skulle dock velat ha List istf ArrayList till vänster! 🙂

Lämna ett svar

E-postadressen publiceras inte. Obligatoriska fält är märkta *

*

Denna webbplats använder Akismet för att minska skräppost. Lär dig hur din kommentardata bearbetas.