Ish*_*aqi 1 java collections hashmap
在Java中,视图是一个轻量级对象,它实现了Collection或Map接口,但不是真正的集合。当我们Map.values()在 Java 中使用时,我们可以查看接口中针对键存储的值Map。与 Java 中的其他集合一样,视图也带有get()方法set()。我找不到任何访问视图中第一个或最后一个值的提示。该get()方法接受一个周长并搜索该周长,并在找到传递的值后返回该值。那么有没有一种方法可以获取Java视图的第一个值的第一个值。
我尝试使用get()方法,但我知道它不会查看特定索引,而是搜索collection.
tl;dr像对待任何其他集合一样对待视图,它们作为视图没有什么特别的。对于其中一些,您可以获得第一个/最后一个。对于其他人你不能。对于所有这些,您可以通过使用迭代顺序“伪造”它(这可能有意义,也可能没有意义)。
给定视图是否具有第一个或最后一个对象的概念取决于它所代表的内容。几个有代表性的例子如下:
Map.keySet()返回 aSet因为 a 中键的顺序Map未定义并且不能有任何重复项Map.values()返回 aCollection因为其值的顺序未定义。它还可以包含重复项,因此它不能是Set.List.sublist()返回 aList因为它只是 a 的“放大”视图,List因此获取第一个/最后一个的效果就像任何其他一样。SortedSet.subSet()返回另一个SortedSet,原因与 类似List。当视图恰好是Listthen 和 时l.get(0),l.get(l.size()-1)将分别返回第一个/最后一个元素。
如果视图是 a Collection,则没有有意义的“第一个”或“最后一个”,因为没有定义的顺序。您可以使用iterator()并将返回的第一个值指定为next()“第一个”,将最后一个值指定为“最后一个”,但这取决于经常未定义的迭代顺序(加上迭代到最后一个元素可能非常昂贵)。
| 归档时间: |
|
| 查看次数: |
71 次 |
| 最近记录: |