##Stringに直すときって結構多くない?
おおくね?
特にPrimaryKeyとかは
intとかlongのこと多いだろうけど
API通信挟むときStringになったりとかするだろうし
ってことで変換はString.valueOf
かObject.toString
ですかね
.java
package test;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* test
*
* @author me
*
*/
public class Test1 {
/**
* main
* @param args
*/
public static void main(String[] args) {
System.out.println("-------計測開始-------");
Long start1 = System.currentTimeMillis();
run1();
Long end1 = System.currentTimeMillis();
System.out.println("String.valueOf() : " + (end1 - start1) + "ms");
Long start2 = System.currentTimeMillis();
run2();
Long end2 = System.currentTimeMillis();
System.out.println("Object.toString() : " + (end2 - start2) + "ms");
System.out.println("-------計測終了-------");
}
/**
* {@link String#valueOf()}
*/
private static void run1() {
IntStream.range(0, 5000000).boxed().map(String::valueOf).collect(Collectors.toList());
}
/**
* {@link Object#toString()}
*/
private static void run2() {
IntStream.range(0, 5000000).boxed().map(Object::toString).collect(Collectors.toList());
}
}
-------計測開始-------
String.valueOf() : 2024ms
Object.toString() : 904ms
-------計測終了-------
え、そんなちがうんだ...
まぁObject.toString
はプリミティブ型に使えないし、うーんって感じだ...
ちなみに
.java
package test;
import java.util.stream.Collectors;
import java.util.stream.IntStream;
/**
* test
*
* @author me
*
*/
public class TestT {
/**
* main
* @param args
*/
public static void main(String[] args) {
System.out.println("-------計測開始-------");
Long start1 = System.currentTimeMillis();
run1();
Long end1 = System.currentTimeMillis();
System.out.println((end1 - start1) + "ms");
System.out.println("-------計測終了-------");
}
/**
* いいのこれ?
*/
private static void run1() {
IntStream.range(0, 5000000).boxed().map(v -> v + "").collect(Collectors.toList());
}
}
-------計測開始-------
3021ms
-------計測終了-------
だめですねw