巨多字符串,频繁split,内存溢出
008011;100025;1369491001;新绿色田地;2;0;20111027;29991231;70;70;0;;
类似上边的数据,有100多万行.
100多W已成功导入List<String> lines = new ArrayList<String>();
现在要把每一行,按";" 拆分成String[] .我是循环遍历 lines,每一行 用pattern.split() 拆分.
执行到70多W行的时候就内存溢出了. 有木有别的拆分方式,可以避免内存溢出?
我知道加大内存是个方式.但这个方式不能用.
代码:
List<String>list=new ArrayList<String>(); List<String[]>rows = new ArrayList<String[]>(); String s = "008011;100025;1369491001;新绿色田地;2;0;20111027;29991231;70;70;0;;"; for(int i=0;i<1500000;i++){ list.add(s); } String regex = ";"; Pattern p = Pattern.compile(regex); for(int i=0;i<list.size();i++){ String line = list.get(i); rows.add(p.split(line)); System.out.println(i); //每次到70多W行,就内存溢出.咋办?? } System.out.println(rows.size());