val abc
= (1 to
1000).
toList
val startTime1
= System.
currentTimeMillis() val v1
= abc.
scanLeft(List
[Int
]()) { (a, acc)=> a ++ List(acc)
}.tail
val endTime1
= System.
currentTimeMillis() println(s"1: ${endTime1 - startTime1} ms")
val startTime2
= System.
currentTimeMillis() val v2
= (1 to abc.
length).
map(abc.
take).
toList val endTime2
= System.
currentTimeMillis() println(s"2: ${endTime2 - startTime2} ms")
val startTime3
= System.
currentTimeMillis() val v3
= abc.
inits.
toList.
reverse.
tail val endTime3
= System.
currentTimeMillis() println(s"3: ${endTime3 - startTime3} ms")
val startTime4
= System.
currentTimeMillis() val v4
= ((List.
empty[List
[Int
]], List.
empty[Int
]) /
: abc
) { case ((all, cur
), i
) => val next
= cur
:+ i
; ((all
:+ next, next
)) }
val endTime4
= System.
currentTimeMillis() println(s"4: ${endTime4 - startTime4} ms")
val startTime5
= System.
currentTimeMillis() val v5
= (List
(List
(abc.
head)) /
: abc.
tail) { case (all, i
) => all
:+
(all.
last :+ i
) }
val endTime5
= System.
currentTimeMillis() println(s"5: ${endTime5 - startTime5} ms")
}
b2JqZWN0IE1haW4gZXh0ZW5kcyBBcHAgewoJICB2YWwgYWJjID0gKDEgdG8gMTAwMCkudG9MaXN0CiAgICAgIAogICAgICB2YWwgc3RhcnRUaW1lMSA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpCiAgICAgIHZhbCB2MSA9IGFiYy5zY2FuTGVmdChMaXN0W0ludF0oKSkgewogICAgICAgICAgKGEsIGFjYyk9PiBhICsrIExpc3QoYWNjKQogICAgICB9LnRhaWwKICAgICAgdmFsIGVuZFRpbWUxID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkKICAgICAgcHJpbnRsbihzIjE6ICR7ZW5kVGltZTEgLSBzdGFydFRpbWUxfSBtcyIpCiAgICAgIAogICAgICB2YWwgc3RhcnRUaW1lMiA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpCiAgICAgIHZhbCB2MiA9ICgxIHRvIGFiYy5sZW5ndGgpLm1hcChhYmMudGFrZSkudG9MaXN0CiAgICAgIHZhbCBlbmRUaW1lMiA9IFN5c3RlbS5jdXJyZW50VGltZU1pbGxpcygpCiAgICAgIHByaW50bG4ocyIyOiAke2VuZFRpbWUyIC0gc3RhcnRUaW1lMn0gbXMiKQogICAgICAKICAgICAgdmFsIHN0YXJ0VGltZTMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKQogICAgICB2YWwgdjMgPSBhYmMuaW5pdHMudG9MaXN0LnJldmVyc2UudGFpbAogICAgICB2YWwgZW5kVGltZTMgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKQogICAgICBwcmludGxuKHMiMzogJHtlbmRUaW1lMyAtIHN0YXJ0VGltZTN9IG1zIikKICAgICAgCiAgICAgIHZhbCBzdGFydFRpbWU0ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkKICAgICAgdmFsIHY0ID0gKChMaXN0LmVtcHR5W0xpc3RbSW50XV0sIExpc3QuZW1wdHlbSW50XSkgLzogYWJjKSB7IAogICAgICAgICAgY2FzZSAoKGFsbCwgY3VyKSwgaSkgPT4gdmFsIG5leHQgPSBjdXIgOisgaSA7ICgoYWxsIDorIG5leHQsIG5leHQpKSAKICAgICAgfQogICAgICB2YWwgZW5kVGltZTQgPSBTeXN0ZW0uY3VycmVudFRpbWVNaWxsaXMoKQogICAgICBwcmludGxuKHMiNDogJHtlbmRUaW1lNCAtIHN0YXJ0VGltZTR9IG1zIikKICAgICAgCiAgICAgIHZhbCBzdGFydFRpbWU1ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkKICAgICAgdmFsIHY1ID0gKExpc3QoTGlzdChhYmMuaGVhZCkpIC86IGFiYy50YWlsKSB7CiAgICAgICAgICBjYXNlIChhbGwsIGkpID0+IGFsbCA6KyAoYWxsLmxhc3QgOisgaSkgCiAgICAgIH0KICAgICAgdmFsIGVuZFRpbWU1ID0gU3lzdGVtLmN1cnJlbnRUaW1lTWlsbGlzKCkKICAgICAgcHJpbnRsbihzIjU6ICR7ZW5kVGltZTUgLSBzdGFydFRpbWU1fSBtcyIpCn0=