如何提高与优化自己的代码

来源:互联网 发布:数据分析的流程图 编辑:程序博客网 时间:2024/05/16 05:45
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()也有相同情况


1 0