Java:如何在LinkedList中获得first floorEntry(),不进行遍历。LinkedSortedMap
我有一个需要按插入顺序遍历的列表。但是,我想通过使用floorEntry和ceilingEntry来找到这些值的“起点” 因此,我需要一个具有以下所需操作的集合:Java:如何在LinkedList中获得first floorEntry(),不进行遍历。LinkedSortedMap,java,data-structures,collections,linked-list,sortedmap,Java,Data Structures,Collections,Linked List,Sortedmap,我有一个需要按插入顺序遍历的列表。但是,我想通过使用floorEntry和ceilingEntry来找到这些值的“起点” 因此,我需要一个具有以下所需操作的集合: 频繁插入/追加到末尾 需要像这样遍历: 查找所有值>=或如果希望能够支持删除,则可以使用树形图,其中键为自动递增整数 TreeMap<Integer, Object> sortedMap; HashMap<Object, Integer> lookupMap; int key; public void ad
- 查找所有值>=或如果希望能够支持删除,则可以使用树形图,其中键为自动递增整数
TreeMap<Integer, Object> sortedMap; HashMap<Object, Integer> lookupMap; int key; public void add(Object obj) { sortedMap.put(key, obj); lookupMap.put(obj, key); key++; }
使用“查找贴图”在已排序的贴图中查找对象的关键点,然后使用检索到的关键点对已排序的贴图执行楼层/天花板查询TreeMap-sortedMap; HashMap查找图; int键; 公共无效添加(对象obj){ 分类地图放置(钥匙,obj); lookupMap.put(对象,键); key++; }
谷歌有一个解决方案,你可以通过在一个方向上使用散列图,在另一个方向上使用树图来适应你的需要,但这是行不通的。集合需要按时间排序。。。。但我需要根据值而不是时间进行查找。好的-看起来更好。但是必须在lookupMap上进行地板操作,所以lookupMap必须是一个分类地图。也许我需要编辑我的问题来澄清。HashBiMap没有楼层。需要一个分类的位图。。嗯,也许是BiMap。。TreeMap<Integer, Object> sortedMap; HashMap<Object, Integer> lookupMap; int key; public void add(Object obj) { sortedMap.put(key, obj); lookupMap.put(obj, key); key++; }