den*_*chr 5 java sorting collections arraylist map
我有一个有序的地图,并希望通过它们的索引位置引用它的有序对象.这可能吗?如何在保持排序的同时将有序映射转换为数组列表,因此我可以通过索引(顺序)检索对象.这是唯一的方法吗?
理想情况下,我可以拥有这个结构,并且知道该结构中的对象的索引,并且可以通过说:
Object nextObj = structure[4] //this structure is originally a sortedMap
//SortedMap<String, Object> sortedMap = new TreeMap<String, Object>();
Run Code Online (Sandbox Code Playgroud)
我的问题是我首先要有一个有序的地图.有没有一种已知的方法来做到这一点?
非常感谢您提出任何方法.
您可以通过执行从SortedMap检索键值数组
Object[] objects = structure.entrySet().toArray();
Object nextObj = structure[4];
Run Code Online (Sandbox Code Playgroud)
下面的代码显示了如何获取对象的键和值
java.util.Map.Entry<K, V> entry = (java.util.Map.Entry<K, V>) structure[4];
K key = entry.getKey();
V value = entry.getValue();
Run Code Online (Sandbox Code Playgroud)
编辑:获取对象值和键的示例
我会使用以下结构
List<Pair<String,Object>> mylist;
Run Code Online (Sandbox Code Playgroud)
总是在自定义Comparator的帮助下插入/搜索对象,并像C++一样使用一组像lower_bound/upper_bound/equal_bound这样的方法(例如,这里参见java实现)