相关疑难解决方法(0)

为什么Stream <T>没有实现Iterable <T>?

在Java 8中,我们有Stream <T>类,它奇怪地有一个方法

Iterator<T> iterator()
Run Code Online (Sandbox Code Playgroud)

所以你会期望它实现接口Iterable <T>,这需要完全这个方法,但事实并非如此.

当我想使用foreach循环遍历Stream时,我必须做类似的事情

public static Iterable<T> getIterable(Stream<T> s) {
    return new Iterable<T> {
        @Override
        public Iterator<T> iterator() {
            return s.iterator();
        }
    };
}

for (T element : getIterable(s)) { ... }
Run Code Online (Sandbox Code Playgroud)

我在这里错过了什么吗?

java iterable java-8 java-stream

254
推荐指数
5
解决办法
3万
查看次数

Java:如何从String中获取Iterator <Character>

我需要Iterator<Character>一个String物体.Java中是否有任何可用的功能可以为我提供这个功能,还是我必须编写自己的代码?

java string iterator

33
推荐指数
3
解决办法
4万
查看次数

如何从迭代器创建Java 8流?

是否可以从迭代器创建一个Stream,其中对象序列与通过重复调用迭代器的next()方法生成的对象序列相同?我想到的具体情况涉及TreeSet.descendingIterator()返回的迭代器的使用,但我可以想象其他情况下迭代器,而不是它引用的集合是可用的.

例如,对于TreeSet<T> tset我们可以tset.stream()...在集合的排序顺序中编写和获取该集合中的对象流,但是如果我们希望它们以不同的顺序(例如通过使用可用的顺序)descendingIterator()怎么办?我想象的东西,tset.descendingIterator().stream()...或者stream( tset.descendingIterator() )...,虽然这些形式都不是有效的.

java java-stream

27
推荐指数
2
解决办法
2万
查看次数

标签 统计

java ×3

java-stream ×2

iterable ×1

iterator ×1

java-8 ×1

string ×1