From 6a967ae6228dbe7beaf56c727c08770bad2e669f Mon Sep 17 00:00:00 2001 From: Marius Volkhart Date: Wed, 10 Mar 2021 21:42:19 +0000 Subject: [PATCH] Streamline HPSF CustomProperties collection retrieval Reduce the number of map lookups necessary to compute the return values for methods that return collections of property details. Since we maintain parity between the `props` and `dictionary` contents, when retrieving property details, we can reference the `props` directly and avoid the `dictionary` indirection. git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1887453 13f79535-47bb-0310-9956-ffa450edef68 --- src/java/org/apache/poi/hpsf/CustomProperties.java | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/java/org/apache/poi/hpsf/CustomProperties.java b/src/java/org/apache/poi/hpsf/CustomProperties.java index e260e3066f..fa49246e80 100644 --- a/src/java/org/apache/poi/hpsf/CustomProperties.java +++ b/src/java/org/apache/poi/hpsf/CustomProperties.java @@ -219,9 +219,7 @@ public class CustomProperties implements Map { */ public List properties() { List list = new ArrayList<>(props.size()); - for (Long l : dictionary.keySet()) { - list.add(props.get(l)); - } + list.addAll(props.values()); return Collections.unmodifiableList(list); } @@ -231,8 +229,8 @@ public class CustomProperties implements Map { @Override public Collection values() { List list = new ArrayList<>(props.size()); - for (Long l : dictionary.keySet()) { - list.add(props.get(l).getValue()); + for (CustomProperty property : props.values()) { + list.add(property.getValue()); } return Collections.unmodifiableCollection(list); } @@ -240,8 +238,8 @@ public class CustomProperties implements Map { @Override public Set> entrySet() { Map set = new LinkedHashMap<>(props.size()); - for (Entry se : dictionary.entrySet()) { - set.put(se.getValue(), props.get(se.getKey()).getValue()); + for (CustomProperty property : props.values()) { + set.put(property.getName(), property.getValue()); } return Collections.unmodifiableSet(set.entrySet()); }