java enumerable_java - Java相当于C#的'Enumerable.Any' - 堆栈内存溢出
使用Java 8,您可以編寫如下內容:
if (Stream.of(">", "
...
}
出于好奇,我運行了一個基準來比較這個方法和一個正則表達式。 下面的代碼和結果(分數越低=越快)。 Streams的性能比regex好一個數量級。
Benchmark (s) Mode Samples Score Error Units
c.a.p.SO30940682.stream >aaaaaaaaaaaaaaaaaaaaa avgt 10 49.942 ± 1.936 ns/op
c.a.p.SO30940682.stream aaaaaaaaaaaaaaaaaaaaa> avgt 10 54.263 ± 1.927 ns/op
c.a.p.SO30940682.stream aaaaaaaaaaaaaaaaaaaaap avgt 10 131.537 ± 4.908 ns/op
c.a.p.SO30940682.stream paaaaaaaaaaaaaaaaaaaaa avgt 10 129.528 ± 7.352 ns/op
c.a.p.SO30940682.regex >aaaaaaaaaaaaaaaaaaaaa avgt 10 649.867 ± 27.142 ns/op
c.a.p.SO30940682.regex aaaaaaaaaaaaaaaaaaaaa> avgt 10 1047.122 ± 89.230 ns/op
c.a.p.SO30940682.regex aaaaaaaaaaaaaaaaaaaaap avgt 10 1029.710 ± 61.055 ns/op
c.a.p.SO30940682.regex paaaaaaaaaaaaaaaaaaaaa avgt 10 694.309 ± 32.675 ns/op
碼:
@State(Scope.Benchmark)
@BenchmarkMode(Mode.AverageTime)
public class SO30940682 {
@Param({">aaaaaaaaaaaaaaaaaaaaa", "aaaaaaaaaaaaaaaaaaaaa>",
"aaaaaaaaaaaaaaaaaaaaap", "paaaaaaaaaaaaaaaaaaaaa"}) String s;
@Benchmark public boolean stream() {
return Stream.of(">", "
}
@Benchmark public boolean regex() {
return s.matches("^.*?(>|
}
}
總結
以上是生活随笔為你收集整理的java enumerable_java - Java相当于C#的'Enumerable.Any' - 堆栈内存溢出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java super()方法_Java
- 下一篇: java 内存泄漏场景_Java内存泄露