我有一个字符串数组,
List<String[]> s,有这样的规律:s[0]相同部分是连续的,s[1]随意。
s.get(0) 0,b
s.get(1) 0,a
s.get(2) 0,c
s.get(3) 1,d
s.get(4) 1,a
s.get(5) 2,c
s.get(6) 3,a
。如果把s转换成map? 如下
0,bac
1,da
2,c
3,a求1高效率,可重用的方法。
List<String[]> s,有这样的规律:s[0]相同部分是连续的,s[1]随意。
s.get(0) 0,b
s.get(1) 0,a
s.get(2) 0,c
s.get(3) 1,d
s.get(4) 1,a
s.get(5) 2,c
s.get(6) 3,a
。如果把s转换成map? 如下
0,bac
1,da
2,c
3,a求1高效率,可重用的方法。
楼主【xwj1003】截止到2008-06-23 20:23:35的历史汇总数据(不包括此帖):
发帖数:48 发帖分:735
结贴数:48 结贴分:735
未结数:0 未结分:0
结贴率:100.00% 结分率:100.00%
敬礼!
关键看你数据量有大.package test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;public class StringTest {
public static List<String[]> s = new ArrayList<String[]> ();
static {
for (int i = 0; i < 10000; i++) {
s.add(new String[] {String.valueOf(i%100), i+","} );
}
}
public static void main(String[] args) {
long st = System.currentTimeMillis();
test();
long et = System.currentTimeMillis();
System.out.println("StringTest.main():" + (et -st) + " ms");
}
public static void test() {
Map<String, StringBuffer> map = new HashMap<String, StringBuffer>();
for (String[] ss : s) {
String k = ss[0];
String v = ss[1];
StringBuffer mv = map.get(k);
if (mv == null) { mv = new StringBuffer();}
map.put(k, mv.append(v));
}
System.out.println(map);
}
}