OutOfMemory Error

    public static void getAllDataList(List<Data> dataList){
for(int i=0; i<dataList.size(); i++){
String term = dataList.get(i).getTerm() + " ";
String type = dataList.get(i).getType() + " ";
for(int j=i+1; j<dataList.size(); j++){
term = term + dataList.get(j).getTerm() + " ";
type = type + dataList.get(j).getType() + " ";
dataList.add(new Data(type, term, null));
}
}
}

上面这段代码是会出现内存泄露的,因为dataList.size()的值是不停增加的,因为循环里面有dataList.add,所以是个无穷循环。

改正如下:

    public static void getAllDataList(List<Data> dataList){
int length = dataList.size();
for(int i=0; i<length; i++){
String term = dataList.get(i).getTerm() + " ";
String type = dataList.get(i).getType() + " ";
for(int j=i+1; j<length; j++){
term = term + dataList.get(j).getTerm() + " ";
type = type + dataList.get(j).getType() + " ";
dataList.add(new Data(type, term, null));
}
}
}



你可能感兴趣的:(OutOfMemory)