java – 使用Stream API创建对象初始化循环

我有一组常量值可用作列表.使用这些值我必须创建一个键值对对象,并且必须将此对象添加到列表中.我想在JAVA 8中使用Stream API实现这一点.下面是使用for循环的示例实现

for (int i=0; i<length; i+=2){    
    list.add(new sampleObject(constant[i],constant[i+1]);
}

这可以使用流减少操作来实现吗?

解决方法

链IntStream.iterate()使用IntStream.limit()生成无限IntStream以使其有限:

List<sampleObject> list = 
    IntStream.iterate(0,i -> i + 2)
              .limit(Math.ceil(length / 2D))
              .mapToObj(i -> new sampleObject(constant[i],constant[i+1]))
              .collect(Collectors.toList());

相关文章

HashMap是Java中最常用的集合类框架,也是Java语言中非常典型...
在EffectiveJava中的第 36条中建议 用 EnumSet 替代位字段,...
介绍 注解是JDK1.5版本开始引入的一个特性,用于对代码进行说...
介绍 LinkedList同时实现了List接口和Deque接口,也就是说它...
介绍 TreeSet和TreeMap在Java里有着相同的实现,前者仅仅是对...
HashMap为什么线程不安全 put的不安全 由于多线程对HashMap进...