Sometimes shorter code with filterTo, mapTo and flatMapTo

This commit is contained in:
Valentin Kipyatkov
2016-04-19 19:59:23 +03:00
parent 744186402d
commit 49f2c5f657
15 changed files with 221 additions and 13 deletions
@@ -2,7 +2,6 @@
import java.util.ArrayList
fun foo(list: List<String>): ArrayList<String> {
val result = ArrayList<String>()
<caret>list.filterTo(result) { it.length > 0 }
<caret>val result = list.filterTo(ArrayList<String>()) { it.length > 0 }
return result
}
@@ -3,8 +3,7 @@ import java.util.ArrayList
fun foo(list: List<String>, p: Int): ArrayList<String> {
return if (p > 0) {
val result = ArrayList<String>()
<caret>list.filterTo(result) { it.length > 0 }
<caret>val result = list.filterTo(ArrayList<String>()) { it.length > 0 }
result
}
else {
@@ -3,8 +3,7 @@ import java.util.*
fun foo(list: List<String>): ArrayList<String> {
return run {
val result = ArrayList<String>()
<caret>list.filterTo(result) { it.length > 0 }
<caret>val result = list.filterTo(ArrayList<String>()) { it.length > 0 }
result
}
}
+10
View File
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun foo(list: List<String>) {
val target = createCollection()
<caret>for (s in list) {
if (s.length > 0)
target.add(s)
}
}
fun createCollection() = java.util.ArrayList<String>()
@@ -0,0 +1,7 @@
// WITH_RUNTIME
fun foo(list: List<String>) {
val target = createCollection()
<caret>list.filterTo(target) { it.length > 0 }
}
fun createCollection() = java.util.ArrayList<String>()
+12
View File
@@ -0,0 +1,12 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>): List<String> {
val target = ArrayList<String>(100)
<caret>for (s in list) {
for (line in s.lines()) {
target.add(line)
}
}
return target
}
@@ -0,0 +1,7 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>): List<String> {
<caret>val target = list.flatMapTo(ArrayList<String>(100)) { it.lines() }
return target
}
+12
View File
@@ -0,0 +1,12 @@
// WITH_RUNTIME
fun foo(list: List<String>): List<String> {
val target = createCollection()
<caret>for (s in list) {
for (line in s.lines()) {
target.add(line)
}
}
return target
}
fun createCollection() = java.util.ArrayList<String>()
@@ -0,0 +1,8 @@
// WITH_RUNTIME
fun foo(list: List<String>): List<String> {
val target = createCollection()
<caret>list.flatMapTo(target) { it.lines() }
return target
}
fun createCollection() = java.util.ArrayList<String>()
+11
View File
@@ -0,0 +1,11 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>): List<Int> {
val target = ArrayList<Int>(100)
<caret>for (s in list) {
if (s.length > 0)
target.add(s.hashCode())
}
return target
}
@@ -0,0 +1,9 @@
// WITH_RUNTIME
import java.util.ArrayList
fun foo(list: List<String>): List<Int> {
<caret>val target = list
.filter { it.length > 0 }
.mapTo(ArrayList<Int>(100)) { it.hashCode() }
return target
}
+11
View File
@@ -0,0 +1,11 @@
// WITH_RUNTIME
fun foo(list: List<String>): List<Int> {
val target = createCollection()
<caret>for (s in list) {
if (s.length > 0)
target.add(s.hashCode())
}
return target
}
fun createCollection(): MutableList<Int> = java.util.ArrayList()
@@ -0,0 +1,10 @@
// WITH_RUNTIME
fun foo(list: List<String>): List<Int> {
val target = createCollection()
<caret>list
.filter { it.length > 0 }
.mapTo(target) { it.hashCode() }
return target
}
fun createCollection(): MutableList<Int> = java.util.ArrayList()