java - 与 RangeMap 数据结构相反

标签 java data-structures

我正在寻找 Java 数据结构 S<K extends Comparable<?>, V>它允许以下操作:

  • put(K key, V value)将值(例如售出三件商品)添加到一个键(十月一日)
  • Collection<V> get(Range<K> range)意思是给我8月到11月期间售出的所有商品

我想我可以滥用 SortedMap<K, V>但也许你们知道更好的选择。

示例实例化为 new MyDataStructure<Instant, Integer>描述在不同日期出售的股票。

最佳答案

示例答案我所理解的,Map内的对象可以调整。

1.) 可扩展的并发 ConcurrentNavigableMap执行。映射根据其键的自然顺序或通过在映射创建时提供的Comparator 进行排序,具体取决于使用的构造函数。

2.) subMap, (K fromKey,boolean fromInclusive,K toKey,boolean toInclusive)

SubMap 将根据给定日期创建 map ,无论是否包含它们。

public static void main(String[] args) throws ParseException {
        ConcurrentSkipListMap<Date, Integer> myMap = new ConcurrentSkipListMap<Date, Integer>();

        Calendar cal = Calendar.getInstance();
        cal.add(Calendar.DATE, -7);
        Date myDate1 = cal.getTime();
        System.out.println("Date1 = "+myDate1);
        myMap.put(myDate1, 10);

        Calendar cal1 = Calendar.getInstance();
        cal1.add(Calendar.DATE, -4);
        Date myDate2 = cal1.getTime();
        System.out.println("Date2 = "+myDate2);
        myMap.put(myDate2, 5);

        Date myDate3 = new Date();
        System.out.println("Date 3 "+ myDate3);
        myMap.put(myDate3, 2);

        SortedMap<Date, Integer> outputMap = myMap.subMap(myDate1, true,myDate3, false);
        System.out.println("Output Map from "+myDate1 +" to "+myDate2 + "is = "+outputMap);

    }

输出

Date1 = Thu Oct 01 16:48:48 IST 2015
Date2 = Sun Oct 04 16:48:48 IST 2015
Date 3 Thu Oct 08 16:48:48 IST 2015
Output Map from Thu Oct 01 16:48:48 IST 2015 to Sun Oct 04 16:48:48 IST 2015is = {Thu Oct 01 16:48:48 IST 2015=10, Sun Oct 04 16:48:48 IST 2015=5}

关于java - 与 RangeMap 数据结构相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33013903/

相关文章:

java - 如何使用树找到最长的公共(public)子串?

c++ - 如何在不更改给定代码的情况下将自定义 vector<typename> 转换为 STL vector<long> 或从 STL vector<long> 转换?

java.awt.geom.Point2D.createArray()

java - 确保类是不可变的

java - 是否可以在没有 hadoop 依赖的情况下使用 apache mahout 分类

java - 使用图形 API 的 Azure AD 导入适用于随机应用程序

algorithm - 在有向无环加权图中连接两个随机节点

java - 这是在java中添加图书列表的最佳方式

java - 如何将数据写入 csv 文件中的单独列

java - 我不记得固定大小的排序树的数据结构