Ignore:
Timestamp:
2021-03-18T00:57:06+01:00 (4 years ago)
Author:
simon04
Message:

see #20613 - Introduce Tagged.keys()

Avoids creating a temporary HashMap just for iteration purposes

File:
1 edited

Legend:

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

    r16981 r17584  
    1919import java.util.concurrent.TimeUnit;
    2020import java.util.function.BiPredicate;
     21import java.util.stream.IntStream;
     22import java.util.stream.Stream;
    2123
    2224import org.openstreetmap.josm.data.gpx.GpxConstants;
     
    657659        }
    658660        return result;
     661    }
     662
     663    @Override
     664    public Stream<String> keys() {
     665        final String[] k = this.keys;
     666        if (k == null) {
     667            return Stream.empty();
     668        } else if (k.length == 1) {
     669            return Stream.of(k[0]);
     670        } else {
     671            return IntStream.range(0, k.length / 2).mapToObj(i -> k[i * 2]);
     672        }
    659673    }
    660674
Note: See TracChangeset for help on using the changeset viewer.