如何从Set中获取100个对象作为集合?

时间:2014-05-22 08:40:12

标签: java arrays collections set

Set s = userIdVsUserInfo.keySet();

正如您所见,我从hashmap userIdVsUserInfo中获取keySet并将其存储在Set中。由于hashmap的构造是动态的,因此键集可能具有100个以上的对象。

如何将100个对象作为集合?

5 个答案:

答案 0 :(得分:5)

使用,您可以获得密钥流并限制它以获得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