How to get n first values from an Iterator in Java 8?
up vote
4
down vote
favorite
I have sorted a HashMap
using Sort a Map<Key, Value> by values (Java) to that I have a LinkedHashMap
, i.e. an Iterable
which garantees iteration order.
Now, I'd like to retrieve a java.util.List
of the first n
entries of the map with a one-liner, if possible with a Java 8 Collection Stream API-technique.
I found how can i get two consecutive values from Iterator which explains that there's a possibility to do that with an array, but that's not elegant, differs from my intention to get a List
(although that can be transformed, but it's an unnecessary step) and requires an extra method.
java java-8 java-stream
add a comment |
up vote
4
down vote
favorite
I have sorted a HashMap
using Sort a Map<Key, Value> by values (Java) to that I have a LinkedHashMap
, i.e. an Iterable
which garantees iteration order.
Now, I'd like to retrieve a java.util.List
of the first n
entries of the map with a one-liner, if possible with a Java 8 Collection Stream API-technique.
I found how can i get two consecutive values from Iterator which explains that there's a possibility to do that with an array, but that's not elegant, differs from my intention to get a List
(although that can be transformed, but it's an unnecessary step) and requires an extra method.
java java-8 java-stream
add a comment |
up vote
4
down vote
favorite
up vote
4
down vote
favorite
I have sorted a HashMap
using Sort a Map<Key, Value> by values (Java) to that I have a LinkedHashMap
, i.e. an Iterable
which garantees iteration order.
Now, I'd like to retrieve a java.util.List
of the first n
entries of the map with a one-liner, if possible with a Java 8 Collection Stream API-technique.
I found how can i get two consecutive values from Iterator which explains that there's a possibility to do that with an array, but that's not elegant, differs from my intention to get a List
(although that can be transformed, but it's an unnecessary step) and requires an extra method.
java java-8 java-stream
I have sorted a HashMap
using Sort a Map<Key, Value> by values (Java) to that I have a LinkedHashMap
, i.e. an Iterable
which garantees iteration order.
Now, I'd like to retrieve a java.util.List
of the first n
entries of the map with a one-liner, if possible with a Java 8 Collection Stream API-technique.
I found how can i get two consecutive values from Iterator which explains that there's a possibility to do that with an array, but that's not elegant, differs from my intention to get a List
(although that can be transformed, but it's an unnecessary step) and requires an extra method.
java java-8 java-stream
java java-8 java-stream
asked May 23 '17 at 13:03
Karl Richter
2,380112957
2,380112957
add a comment |
add a comment |
2 Answers
2
active
oldest
votes
up vote
11
down vote
accepted
Stream the entrySet
and limit the Stream
to the first n
elements:
List<Map.Entry<Key,Value>> firstN =
map.entrySet().stream().limit(n).collect(Collectors.toList());
add a comment |
up vote
1
down vote
Writing more concise code with StreamEx:
List<Map.Entry<Key,Value>> firstN = EntryStream.of(map).limit(n).toList();
add a comment |
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
11
down vote
accepted
Stream the entrySet
and limit the Stream
to the first n
elements:
List<Map.Entry<Key,Value>> firstN =
map.entrySet().stream().limit(n).collect(Collectors.toList());
add a comment |
up vote
11
down vote
accepted
Stream the entrySet
and limit the Stream
to the first n
elements:
List<Map.Entry<Key,Value>> firstN =
map.entrySet().stream().limit(n).collect(Collectors.toList());
add a comment |
up vote
11
down vote
accepted
up vote
11
down vote
accepted
Stream the entrySet
and limit the Stream
to the first n
elements:
List<Map.Entry<Key,Value>> firstN =
map.entrySet().stream().limit(n).collect(Collectors.toList());
Stream the entrySet
and limit the Stream
to the first n
elements:
List<Map.Entry<Key,Value>> firstN =
map.entrySet().stream().limit(n).collect(Collectors.toList());
answered May 23 '17 at 13:05
Eran
272k35431514
272k35431514
add a comment |
add a comment |
up vote
1
down vote
Writing more concise code with StreamEx:
List<Map.Entry<Key,Value>> firstN = EntryStream.of(map).limit(n).toList();
add a comment |
up vote
1
down vote
Writing more concise code with StreamEx:
List<Map.Entry<Key,Value>> firstN = EntryStream.of(map).limit(n).toList();
add a comment |
up vote
1
down vote
up vote
1
down vote
Writing more concise code with StreamEx:
List<Map.Entry<Key,Value>> firstN = EntryStream.of(map).limit(n).toList();
Writing more concise code with StreamEx:
List<Map.Entry<Key,Value>> firstN = EntryStream.of(map).limit(n).toList();
answered May 24 '17 at 18:37
user_3380739
83868
83868
add a comment |
add a comment |
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f44135683%2fhow-to-get-n-first-values-from-an-iterator-in-java-8%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown