62,612
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) {
int minCount = 1000;//最小追加数量
int maxCount = 2000;//最大追加数量
List<Integer> equal = new ArrayList<Integer>(); //平等
List<Integer> str = new ArrayList<Integer>(); //String效率高
List<Integer> sb = new ArrayList<Integer>(); //StringBuffer效率高
String append = "A";//追加字符
int sum = 0;
for (int i = minCount; i <= maxCount; i++) {
if (calulateString(i, append) > calulateStringBuffer(i, append)) {
sb.add(i);
continue;
} else if (calulateString(i, append) == calulateStringBuffer(i, append)) {
equal.add(i);
continue;
} else if (calulateString(i, append) < calulateStringBuffer(i, append)) {
str.add(i);
continue;
} else {
//时间无法比较
System.out.println(calulateString(i, append) + "-" + calulateStringBuffer(i, append));
}
}
System.out.println(equal.size() + "相同效率:" + Collections.max(equal) + "--" + Collections.min(equal));
System.out.println(equal);
if (str.size() > 0) {
System.out.println(str.size() + "String效率高:" + Collections.max(str) + "--" + Collections.min(str));
System.out.println(str);
}
if (sb.size() > 0) {
System.out.println(sb.size() + "StringBuffer效率高:" + Collections.max(sb) + "--" + Collections.min(sb));
System.out.println(sb);
}
System.out.println(sum);
}
/*
* 计算string时间
*/
public static long calulateString(int size, String append) {
String str = new String();
long start = System.currentTimeMillis();
for (int i = 0; i < size; i++) {
str += append;
}
return System.currentTimeMillis() - start;
}
/*
* 计算string时间
*/
public static long calulateStringBuffer(int size, String append) {
StringBuffer str = new StringBuffer();
long start = System.currentTimeMillis();
for (int i = 0; i < size; i++) {
str.append(append);
}
return System.currentTimeMillis() - start;
}