Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从LinkedHashSet获取前5个值?_Java_Android_Arrays_For Loop_Linkedhashset - Fatal编程技术网

Java 如何从LinkedHashSet获取前5个值?

Java 如何从LinkedHashSet获取前5个值?,java,android,arrays,for-loop,linkedhashset,Java,Android,Arrays,For Loop,Linkedhashset,我有一个LinkedHashSet,它包含多个值 LinkedHashSet<String> lhs = new LinkedHashSet<String>(); 这将输出LinkedHashSet中存储的所有值。我应该对代码进行哪些修改,以便只从集合中获取前5个值 您可以获取集合迭代器 Iterator<String> it = yourSet.iterator(); 如果您有java8,那么我会建议如下: yourLinkedHashSet .

我有一个LinkedHashSet,它包含多个值

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

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

您可以获取集合
迭代器

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

如果您有java8,那么我会建议如下:

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

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

您可以使用子列表而无需计数器声明

  Iterator<String> iter = new ArrayList<>(lhs).subList(5, lhs.size())
    .iterator();
  while (iter.hasNext()) {
    text.append(iter.next());
  }
迭代器iter=newarraylist(lhs).subList(5,lhs.size()) .iterator(); while(iter.hasNext()){ text.append(iter.next()); }
5次迭代后(由
int
variable控制)中断循环如何?这取决于您使用的Java版本。。。对于Java7,这个解决方案将与Java8+的解决方案大不相同。另外,你说你想要5个第一个值:在什么?一个集合,一个数组?@fge安卓使用Java7@Mussa不,没有。据我所知,Android仍然没有任何可行的JSR203或JSR292实现。您能定义“值”吗?你
.append()
到一些
文本
中,但甚至不知道这
文本
是什么……我会把它变成
for
循环。@Arrvi-Meh,这真的是一个意见问题。@Arrvi为什么?这最终对最终结果没有影响。呃,for
循环的
实际上只是在
循环时说a
的一种奇特方式PIt“隐藏”计数器变量。非常感谢,它工作得非常好。这正是我试图找出的解决方案的类型。@编码器,如果输入集的元素少于您等待的元素,会发生什么?@fge它仍然可以工作,因为只有当它大于4时它才会停止。@fge如果我大于4或lhs没有项目,它就会停止
int i = 0;
for (String sentences : lhs) {       
    if (i > 4) break; 
    text.append(sentences);
    i++;
}
yourLinkedHashSet
    .stream()
    .limit(5)
    .forEachOrdered(text::append);
  Iterator<String> iter = new ArrayList<>(lhs).subList(5, lhs.size())
    .iterator();
  while (iter.hasNext()) {
    text.append(iter.next());
  }