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