如何提高與優化自己的代碼

1. 在for循環下的拼接字符串儘量使用StringBuffer和StringBuilder,這樣可以大大提高運算效率

非提倡:
List<String> list = new ArrayList<String>();
columnNameStr="";
for(String columnName : list) {
columnNameStr+= columnName;
}
提倡:
List<String> list = new ArrayList<String>();
columnNameStr="";
StringBuffer sb = new StringBuffer
for(String columnName : list) {
sb.append(columnName).append(",") ;
}
columnNameStr = sb.toString();

2. 儘量不要在for循環中進行增刪、改、查,最好先結合第一步(1),然後用XXX = in();

3.對於list集合來說,判斷list集合爲空,list.size()==0和list.isEmpty()的相率相當
@SuppressWarnings("rawtypes")
List list = new ArrayList();
long start = System.currentTimeMillis();
if (list.size() == 0) {
System.out.println("判斷size的效率");
}
long end = System.currentTimeMillis();
System.out.println(end-start); // 0

@SuppressWarnings("rawtypes")
List list = new ArrayList();
long start = System.currentTimeMillis();
if (list.isEmpty()) {
System.out.println("判斷isEmpty的效率");
}
long end = System.currentTimeMillis();
System.out.println(end-start) ;// 0

4.對於字符串採用split()時,如果匹配單字符,最好用str.split(",")而非str.split(str,','),前者的效率更高
long start = System.currentTimeMillis();
String str = "12,e3,4,54,657,8,89,0-=";
String[] strs = str.split(",");
//String[] strs = str.split(str, ',');
long end = System.currentTimeMillis();
System.out.println(end-start) ;// 0

long start = System.currentTimeMillis();
String str = "12,e3,4,54,657,8,89,0-=";
String[] strs = str.split(str, ',');
long end = System.currentTimeMillis();
System.out.println(end-start) ;// 2
5..對於字符串採用indexOf()時,如果匹配單字符,最好用str.indexOf(',')而非str.indexOf(","),lastIndexOf()也有相同情況


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章