如何实现总是返回非空值的排序多值树图

问题描述 投票:0回答:1

出于Struts的原因,我需要一个总是返回非null值的Sorted map。

对于我的具体情况,我有以下实现,并且工作正常] ::

public class NonEmptyMap extends TreeMap<String, List<MyObject>> {
    @Override
    public List<MyObject> get(Object key) {

        final List<MyObject> result = super.get(key);
        if (result == null) {
            super.put((String) key, new NonEmptyList<MyObject>(MyObject.class));
        }
        return super.get(key);
    }

}

NonEmptyList是list的特殊版本,总是返回非null对象。例如,对大小为1的nonEmptyList的nonEmptyList.get(2)调用将是创建2个空MyObject对象,将它们插入列表并将最新元素返回给客户端调用的原因。

我想概括实现以支持任何Key/Value

是否有任何可用的库实现?

出于Struts的原因,我需要一个Sorted映射,该映射始终返回非null值。对于我的具体情况,我有以下实现,并且运行良好:公共类NonEmptyMap扩展TreeMap <...>

java collections guava apache-commons treemap
1个回答
0
投票

尽管我很确定您的列表实现不符合List合同(即,如果索引超出范围get()],则get()应该抛出,除非您愿意返回[C0 ]从(index < 0 || index >= size()),但可能导致其他意外结果...),则可以使用自定义MAX_INTEGER

© www.soinside.com 2019 - 2024. All rights reserved.