Kamis, 21 Februari 2013

Membandingkan fungsi split di J2ME


Split berguna untuk mendapatkan array of string dari suatu string dengan delimiter

contoh

"bangun,tidur,kuterus,coding,tidak,lupa,menggosok,gigi"

nanti maunya hasilnya adalah

variabel={"bangun","tidur","kuterus","coding","tidak","lupa","menggosok","gigi"}


Hasil perbandingan dari method split berikut


source code 1


static String[] split1(String in, char ch) {
String[] result = new String[2];
int pos = in.indexOf(ch);

if (pos != -1) {
result[0] = in.substring(0, pos).trim();
result[1] = in.substring(pos + 1).trim();
} else {
result[0] = in.trim();
}

return result;
}

source code 2:

public static String[] split(String str, String ch) {
java.util.Vector v = new java.util.Vector();
String tmp;
while (str.indexOf(ch) != -1) {
tmp = str.substring(0, str.indexOf(ch)).trim();
if (tmp.length() > 0) {
v.addElement(tmp);
}
str = str.substring(str.indexOf(ch) + 1, str.length());
}
int vs = v.size();
String[] returned = new String[vs];
if (vs > 1) {
for (int i = 0; i < vs; i++) {
returned[i] = (String) v.elementAt(i);
}
} else if (vs == 1) {
returned[0] = (String) v.elementAt(0);
}
return returned;
}

kemudian dieksekusi

Calendar cal = Calendar.getInstance();
cal.setTime(new Date());
System.out.println(cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND) + ":" + cal.get(Calendar.MILLISECOND));
for (int i = 0; i < 100000; i++) {
split("bangun,tidur,kuterus,coding,tidak,lupa,menggosok,gigi", ",");
}
cal.setTime(new Date());
System.out.println(cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND) + ":" + cal.get(Calendar.MILLISECOND));
for (int i = 0; i < 100000; i++) {
split1("bangun,tidur,kuterus,coding,tidak,lupa,menggosok,gigi", ",".charAt(0));
}
cal.setTime(new Date());
System.out.println(cal.get(Calendar.MINUTE) + ":" + cal.get(Calendar.SECOND) + ":" + cal.get(Calendar.MILLISECOND));



dan hasil pembulatan keatasnya rata2 nya

untuk method 1 adalah 11 detik
untuk method 2 adalah 1 detik

Tidak ada komentar:

Posting Komentar