如何从 LinkedHashSet 中获取前 5 个值?
How to obtain first 5 values from a LinkedHashSet?
我有一个包含多个值的 LinkedHashSet。
LinkedHashSet<String> lhs = new LinkedHashSet<String>();
我想遍历值集并显示该集中存储的项目数的前五个值。我已经使用 for 循环遍历值并显示数据,见下文:
for (String sent : lhs) {
text.append(sent);
}
这将输出存储在 LinkedHashSet 中的所有值。为了仅从集合中获取前 5 个值,我应该对我的代码进行哪些更改。
你可以得到你的套装Iterator
Iterator<String> it = yourSet.iterator();
并移动到next()
元素N次(假设还是hasNext()
元素)
int counter = 0;
while(it.hasNext() && counter++ < N){
String element = it.next();
...
}
int i = 0;
for (String sentences : lhs) {
if (i > 4) break;
text.append(sentences);
i++;
}
如果你有java8,那么我会建议这样:
yourLinkedHashSet
.stream()
.limit(5)
.forEachOrdered(text::append);
解释:
stream()
将从集合中一个接一个地取出字符串
limit(5)
会在处理完五个元素后停止计算
forEachOrdered(...)
对每一项采取行动,一个接一个
text::append
是每个项目要完成的操作
您可以在没有计数器声明的情况下使用 subList
Iterator<String> iter = new ArrayList<>(lhs).subList(5, lhs.size())
.iterator();
while (iter.hasNext()) {
text.append(iter.next());
}
我有一个包含多个值的 LinkedHashSet。
LinkedHashSet<String> lhs = new LinkedHashSet<String>();
我想遍历值集并显示该集中存储的项目数的前五个值。我已经使用 for 循环遍历值并显示数据,见下文:
for (String sent : lhs) {
text.append(sent);
}
这将输出存储在 LinkedHashSet 中的所有值。为了仅从集合中获取前 5 个值,我应该对我的代码进行哪些更改。
你可以得到你的套装Iterator
Iterator<String> it = yourSet.iterator();
并移动到next()
元素N次(假设还是hasNext()
元素)
int counter = 0;
while(it.hasNext() && counter++ < N){
String element = it.next();
...
}
int i = 0;
for (String sentences : lhs) {
if (i > 4) break;
text.append(sentences);
i++;
}
如果你有java8,那么我会建议这样:
yourLinkedHashSet
.stream()
.limit(5)
.forEachOrdered(text::append);
解释:
stream()
将从集合中一个接一个地取出字符串limit(5)
会在处理完五个元素后停止计算forEachOrdered(...)
对每一项采取行动,一个接一个text::append
是每个项目要完成的操作
您可以在没有计数器声明的情况下使用 subList
Iterator<String> iter = new ArrayList<>(lhs).subList(5, lhs.size())
.iterator();
while (iter.hasNext()) {
text.append(iter.next());
}