浏览代码

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
tags/REL_5_1_0
Marius Volkhart 3 年前
父节点
当前提交
6a967ae622
共有 1 个文件被更改,包括 5 次插入7 次删除
  1. 5
    7
      src/java/org/apache/poi/hpsf/CustomProperties.java

+ 5
- 7
src/java/org/apache/poi/hpsf/CustomProperties.java 查看文件

@@ -219,9 +219,7 @@ public class CustomProperties implements Map<String,Object> {
*/
public List<CustomProperty> properties() {
List<CustomProperty> 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<String,Object> {
@Override
public Collection<Object> values() {
List<Object> 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<String,Object> {
@Override
public Set<Entry<String, Object>> entrySet() {
Map<String,Object> set = new LinkedHashMap<>(props.size());
for (Entry<Long,String> 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());
}

正在加载...
取消
保存