树映射中的值是否已排序:java
我正在使用java中的树映射。 我想得到所有值的排序列表/集合。 TreeMap.values()会起作用吗 我得到的集合是基于键集排序,还是该集合是随机的 谢谢。已排序为: 集合的迭代器按相应键的升序返回值 分类如下: 集合的迭代器按相应键的升序返回值树映射中的值是否已排序:java,java,treemap,Java,Treemap,我正在使用java中的树映射。 我想得到所有值的排序列表/集合。 TreeMap.values()会起作用吗 我得到的集合是基于键集排序,还是该集合是随机的 谢谢。已排序为: 集合的迭代器按相应键的升序返回值 分类如下: 集合的迭代器按相应键的升序返回值 是的,TreeMap实现了NavigableMap,它扩展了SortedMap,并因此被排序(按键)。是的,TreeMap实现了NavigableMap,它扩展了SortedMap,并因此被排序(按键)。如TreeMap.values()的ja
是的,TreeMap实现了
NavigableMap
,它扩展了SortedMap
,并因此被排序(按键)。是的,TreeMap实现了NavigableMap
,它扩展了SortedMap
,并因此被排序(按键)。如TreeMap.values()的javadoc中所述:
集合的迭代器按值的升序返回值
对应键
因此,返回的集合可以按键的升序进行迭代
为了实现对贴图值进行更灵活排序的方法,我通常使用以下模式:
List listOfValues = new ArrayList();
Comparator valuesComparator = ...;
listOfValues.addAll(myTreeMap.values());
Collections.sort(listOfValues, valuesComparator);
正如TreeMap.values()的javadoc中所述: 集合的迭代器按值的升序返回值 对应键 因此,返回的集合可以按键的升序进行迭代 为了实现对贴图值进行更灵活排序的方法,我通常使用以下模式:
List listOfValues = new ArrayList();
Comparator valuesComparator = ...;
listOfValues.addAll(myTreeMap.values());
Collections.sort(listOfValues, valuesComparator);
树映射是按键排序的,而不是按值排序的。如果要按值对地图排序,请参见以下问题:TreeMap按键排序,而不是按值排序。如果您想按值对地图排序,请参见以下问题:好的,那么我可以执行collection.getindex(5)吗?您可以尝试使用Collection方法
.toArray()
,该方法返回与迭代器相同序列的数组。否则,只需使用迭代器…还有一件事。如何将此数组设置为数组列表?没有方法collection.getIndex
,因此不能调用该方法。如果您想要集合中的第5项,则必须为其获取一个迭代器
,并调用next()
五次(前四次调用“快进”,然后第五次调用以获取您的值)。当然,您应该确保至少有五个值,否则您将得到一个NoSuchElementException
。好的,那么我可以执行collection.getindex(5)吗?您可以尝试使用Collection方法.toArray()
,该方法返回与迭代器相同序列的数组。否则,只需使用迭代器…还有一件事。如何将此数组设置为数组列表?没有方法collection.getIndex
,因此不能调用该方法。如果您想要集合中的第5项,则必须为其获取一个迭代器
,并调用next()
五次(前四次调用“快进”,然后第五次调用以获取您的值)。当然,您应该确保至少有五个值,否则您将得到一个NoTouchElementException
。