Ignore:
Timestamp:
2015-07-05T22:14:49+02:00 (9 years ago)
Author:
bastiK
Message:

applied #11655 - memory optimization (patch by shinigami, modified)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/osm/AbstractPrimitive.java

    r8566 r8574  
    487487        }
    488488
    489         final Map<String, String> result = new HashMap<>();
     489        final Map<String, String> result = new HashMap<>(Utils.hashMapInitialCapacity(keys.length / 2));
    490490        for (int i = 0; i < keys.length; i += 2) {
    491491            result.put(keys[i], keys[i + 1]);
     
    654654    @Override
    655655    public final Collection<String> keySet() {
    656         String[] keys = this.keys;
    657         if (keys == null)
     656        final String[] keys = this.keys;
     657        if (keys == null){
    658658            return Collections.emptySet();
    659         Set<String> result = new HashSet<>(keys.length / 2);
     659        }
     660        if (keys.length == 1){
     661            return Collections.singleton(keys[0]);
     662        }
     663
     664        final Set<String> result = new HashSet<>(Utils.hashMapInitialCapacity(keys.length / 2));
    660665        for (int i = 0; i < keys.length; i += 2) {
    661666            result.add(keys[i]);
Note: See TracChangeset for help on using the changeset viewer.