小编Adr*_*ard的帖子

流状态计算:累积总和

假设我有一个Java IntStream,是否可以将其转换为具有累积总和的IntStream?例如,以[4,2,6,...]开头的流应转换为[4,6,12,...].

更一般地说,应该如何实现有状态流操作?感觉这应该是可能的:

myIntStream.map(new Function<Integer, Integer> {
    int sum = 0; 
    Integer apply(Integer value){ 
        return sum += value; 
    }
);
Run Code Online (Sandbox Code Playgroud)

有明显的限制,这只适用于顺序流.但是,Stream.map明确需要无状态映射函数.我是否正确错过了Stream.statefulMap或Stream.cumulative操作,还是缺少Java流的重点?

比较一下Haskell,其中scanl1函数正好解决了这个例子:

scanl1 (+) [1 2 3 4] = [1 3 6 10]
Run Code Online (Sandbox Code Playgroud)

java java-8 java-stream

21
推荐指数
2
解决办法
5056
查看次数

TypeScript:从类型/减法类型中删除键

我想定义一个泛型类型ExcludeCart<T>,它基本上是T用给定键(在我的情况下cart)删除的.所以,例如,ExcludeCart<{foo: number, bar: string, cart: number}>将是{foo: number, bar: string}.有没有办法在TypeScript中执行此操作?

这就是我想要这样做的原因,以防我咆哮错误的树:我正在将现有的JavaScript代码库转换为TypeScript,它包含一个名为的装饰器函数cartify,它接受一个React组件类Inner并返回另一个组件类Wrapper.

Inner应该采取cart道具,以及零或多个其他道具.Wrapper接受一个cartClient道具(用于生成cart要传递到的道具Inner)和任何Inner接受的道具,除了 cart.

换句话说,一旦我弄清楚如何定义ExcludeCart,我想用它来做:

function cartify<P extends {cart: any}>(Inner: ComponentClass<P>) : ComponentClass<ExcludeCart<P> & {cartClient: any}>
Run Code Online (Sandbox Code Playgroud)

generics decorator typescript reactjs higher-order-components

14
推荐指数
3
解决办法
9460
查看次数

Java XMLStreamWriter:输出Unicode扩展字符(非BMP)

有谁知道如何char使用Java的XMLStreamWriter 正确输出扩展字符(非BMP,超过1 )?例如,尝试输出Unicode U + 10480 :

import java.io.OutputStreamWriter;
import java.nio.charset.StandardCharsets;

import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;

public class XmlStreamWriterExtendedCharactersFail {
    public static void main(String[] args) throws XMLStreamException {
        String inlineStr = "inlineStr = ";
        // create string using StringBuilder to avoid Java file encoding confusion:
        String sbStr = new StringBuilder("sbStr = ").appendCodePoint(0x10480).toString();
        assert sbStr.equals(inlineStr);
        System.out.println(sbStr);

        OutputStreamWriter outWriter = new OutputStreamWriter(System.out,
                StandardCharsets.UTF_8.newEncoder());
        XMLStreamWriter writer = XMLOutputFactory.newFactory()
                .createXMLStreamWriter(outWriter);
        writer.writeStartDocument("UTF-8", "1.1");
        writer.writeStartElement("el");
        writer.writeCharacters(sbStr);
        writer.writeEndElement();
        writer.writeEndDocument();
        writer.close();
    }
}
Run Code Online (Sandbox Code Playgroud)

results in: …

java xml unicode stax

6
推荐指数
1
解决办法
1024
查看次数

D:将DateTime转换为Date:无法从DateTime转换为Date

我需要将DateTime类型转换为Date.这是我的代码:

DateTime dt = DateTime(2015, 1, 1, 14, 10, 13);
Date z = cast(Date)dt;
Run Code Online (Sandbox Code Playgroud)

Error: cannot cast from DateTime to Date

怎么了?

datetime casting d

2
推荐指数
1
解决办法
165
查看次数

只读扫描仪中的数字

想象一下,Scanner传递任何字符串输入,如"11 22 ab 22",该方法应该计算所有数字的总和(55为提到的例子).我在这里编写了一些内容,但我无法跳过字符串.有人可以帮我吗?

System.out.println("Please enter any words and/or numbers: ");
String kbdInput = kbd.nextLine();
Scanner input = new Scanner(kbdInput);
addNumbers(input);  

public static void addNumbers(Scanner input) {
    double sum = 0;
    while (input.hasNextDouble()) {
        double nextNumber = input.nextDouble();
        sum += nextNumber;
    }
    System.out.println("The total sum of the numbers from the file is " + sum);

}
Run Code Online (Sandbox Code Playgroud)

java while-loop java.util.scanner

1
推荐指数
1
解决办法
2203
查看次数