如何从LinkedHashSet获取前5个值?

时间:2016-02-22 21:57:33

标签: java android arrays for-loop linkedhashset

我有一个包含多个值的LinkedHashSet。

LinkedHashSet<String> lhs = new LinkedHashSet<String>();

我想迭代这组值并显示存储在集合中的项目数的前五个值。我使用for循环迭代值并显示数据,见下文:

for (String sent : lhs) {        
    text.append(sent);                                          
}

这将输出存储在LinkedHashSet中的所有值。我应该对我的代码进行哪些更改,以便仅从集合中获取前5个值。

4 个答案:

答案 0 :(得分:6)

你可以获得你的集Iterator

Iterator<String> it = yourSet.iterator();

并移动到next()元素N次(假设它仍为hasNext()元素)

int counter = 0;
while(it.hasNext() && counter++ < N){
    String element = it.next();
    ...
}

答案 1 :(得分:4)

如果您有 java8 ,那么我会建议这样的事情:

yourLinkedHashSet
    .stream()
    .limit(5)
    .forEachOrdered(text::append);

说明:

  • stream()将从集合中接受一个接一个的字符串
  • limit(5)将在处理完五个元素后停止计算
  • forEachOrdered(...)一个接一个地对每个项目采取行动
  • text::append是每个项目要执行的操作

答案 2 :(得分:3)

int i = 0;
for (String sentences : lhs) {       
    if (i > 4) break; 
    text.append(sentences);
    i++;
}

答案 3 :(得分:0)

您可以使用不带计数器声明的subList

  Iterator<String> iter = new ArrayList<>(lhs).subList(5, lhs.size())
    .iterator();
  while (iter.hasNext()) {
    text.append(iter.next());
  }