Are there any containers in Java which allows us to use iterator by key and which can go both to the next element and to the previous one (like maps in c++)?
p.s. sorry for my English
A NavigableMap comes closest to std::map. The most commonly used implementation is TreeMap.
The NavigableMap contains a lot of methods to iterate in sorted order over the entries. The first loop iterates over all elements, whereas the second loop is restricted to a sub-range.
NavigableMap<String, Integer> map = ...;
for (Map.Entry<String, Integer> entry : map.entrySet()) {
// ...
}
for (Map.Entry<String, Integer> entry
: map.subMap("bar", "foo").entrySet()) {
// ...
}
It is also possible to iterate from the beginning to a certain entry, or from a certain entry to the end. Take a look at the following methods:
In C++, iterators are also used for a lot of other use cases. The Java iterators are very different, and can not be used in combination with mutating operations. In many cases, you have to use lookups by instead of iterations. For example, the following methods return the previous and next entry (in sorted order), if the key of the current entry is used:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With