如何从LinkedHashSet获取前5个值?

cod*_*der 3 java arrays android for-loop linkedhashset

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

LinkedHashSet<String> lhs = new LinkedHashSet<String>();
Run Code Online (Sandbox Code Playgroud)

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

for (String sent : lhs) {        
    text.append(sent);                                          
}
Run Code Online (Sandbox Code Playgroud)

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

Psh*_*emo 6

你可以得到你的套装 Iterator

Iterator<String> it = yourSet.iterator();
Run Code Online (Sandbox Code Playgroud)

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

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


Mus*_*ssa 5

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


sla*_*dan 5

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

yourLinkedHashSet
    .stream()
    .limit(5)
    .forEachOrdered(text::append);
Run Code Online (Sandbox Code Playgroud)

说明:

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