Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
树映射中的值是否已排序:java_Java_Treemap - Fatal编程技术网

树映射中的值是否已排序:java

树映射中的值是否已排序:java,java,treemap,Java,Treemap,我正在使用java中的树映射。 我想得到所有值的排序列表/集合。 TreeMap.values()会起作用吗 我得到的集合是基于键集排序,还是该集合是随机的 谢谢。已排序为: 集合的迭代器按相应键的升序返回值 分类如下: 集合的迭代器按相应键的升序返回值 是的,TreeMap实现了NavigableMap,它扩展了SortedMap,并因此被排序(按键)。是的,TreeMap实现了NavigableMap,它扩展了SortedMap,并因此被排序(按键)。如TreeMap.values()的ja

我正在使用java中的树映射。 我想得到所有值的排序列表/集合。 TreeMap.values()会起作用吗

我得到的集合是基于键集排序,还是该集合是随机的

谢谢。

已排序为:

集合的迭代器按相应键的升序返回值

分类如下:

集合的迭代器按相应键的升序返回值


是的,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