Set s = userIdVsUserInfo.keySet();
正如您所见,我从hashmap userIdVsUserInfo中获取keySet并将其存储在Set中。由于hashmap的构造是动态的,因此键集可能具有100个以上的对象。
如何将100个对象作为集合?
答案 0 :(得分:5)
使用java-8,您可以获得密钥流并限制它以获得100个元素。
Set<MyKey> hundredKeys =
map.keySet().stream().limit(100).collect(Collectors.toSet());
我不知道你在没有循环的情况下做什么意思,无论如何总会有一种迭代。
答案 1 :(得分:3)
由于HashMap
没有按顺序存储元素,因此使用keySet()
尝试获取的前100个元素可能实际上不是第一个插入的元素。
尽管如此,由于您希望结果为Collection
且未明确使用循环,我认为在这种情况下您可以使用List
List<String> list = new ArrayList<>(userIdVsUserInfo.keySet()); // put the elements into a list
list = list.subList(0, 100); // get a subList with 100 elements
如果您非常关心获得100个元素的Set
,那么您可以再次从Set
中创建List
,但这样做了真的太过分了。
答案 2 :(得分:1)
你可以从它http://docs.oracle.com/javase/7/docs/api/java/util/Set.html#iterator()
中取一个迭代器顺便说一下,set是无序的,所以没有“100个第一”元素。
答案 3 :(得分:1)
HashMap
是无序的,因此您无法获得前100对。
无论如何,你可以创建一个从1到100的循环并获取所需数量的对,但请注意,没有顺序。
答案 4 :(得分:0)
如果你不是在java8上并且在你的项目中有它,你也可以使用guava的Iterables