我正在使用处理将txt文件中的数据输入到一组StringLists
中。我现在想将StringLists
逐个放入ArrayList
。
但是,所有StringLists
都会进入相同的ArrayList
索引,即0
。
StringList lista = new StringList();
String [] listv;
ArrayList <Via> listaVias = new ArrayList();
Via via= null;
void setup() {
int contador = 0;
String lines [] = loadStrings("data.txt");
Via ultimaVia = null;
for (String linha : lines) {
String[] params = split(linha, TAB);
float score = parseFloat(params[0]);
listaVias.add(via=new Via(score));
for (int i=2; i<params.length; i++) {
via.append(params[i]);
//listaVias.add(via);
}
println(listaVias);
if (ultimaVia!=null && ultimaVia.isEqual(via)) {
} else {
if (via.size()>3) {
contador++;
if (contador==100) {
break;
}
}
}
ultimaVia = via;
}
}
这是我的Via课程
class Via extends StringList {
final float score;
Via(float score) {
super();
this.score = score;
}
boolean isEqual(Via via) {
if (this.size() == via.size()) {
for (int i=1; i<via.size();i++) {
if(!via.get(i).equals(this.get(i))){
return false;
}
}
} else {
return false;
}
return true;
}
}
TXT样本
0.999999999197 4 BAI2 SMAD2 SMAD4 SMAD3
0.999999999197 4 GRK6 SMAD2 SMAD4 SMAD3
0.999999999197 4 JUNB SMAD2 SMAD4 SMAD3
0.999999999197 4 BZRAP1 SMAD2 SMAD4 SMAD3
0.999999999197 4 RNPEPL1 SMAD2 SMAD4 SMAD3
0.999999999197 4 SBF1 SMAD2 SMAD4 SMAD3
0.999999999197 4 TRABD SMAD2 SMAD4 SMAD3
0.999999999197 4 LDB1 SMAD2 SMAD4 SMAD3
0.999999999197 4 VEGFB SMAD2 SMAD4 SMAD3
0.999999999197 4 SKI SMAD2 SMAD4 SMAD3
0.999999994595 3 SLC25A22 JUN EP300
0.999999994595 3 S100A6 JUN EP300
0.999999994595 3 FXYD2 JUN EP300
0.999999994595 3 STK40 JUN EP300
0.999999994595 3 HDAC7 JUN EP300
0.999999994595 3 CLCN6 JUN EP300
0.999999994595 3 PRDX2 JUN EP300
0.999999994595 3 MYL6 JUN EP300
0.999999994595 3 WDR82 JUN EP300
0.999999994595 3 ADM JUN EP300
0.999999994595 3 SNRPG JUN EP300
0.999999994595 3 ZYX JUN EP300
0.999999994402 4 SLC25A22 FOS JUN EP300
0.999999994402 4 S100A6 FOS JUN EP300
0.999999994402 4 FXYD2 FOS JUN EP300
0.999999994402 4 STK40 FOS JUN EP300
0.999999994402 4 HDAC7 FOS JUN EP300
PRINTLN结果:
答案 0 :(得分:0)
在ArrayList
表单中打印println(listaVias)
将导致列表打印如下:[item1, item2, item3]
。从println
示例的外观中,每个项目都会正确添加到列表中。
println(listaVias.get(2))
会导致IndexOutOfBoundsException: Index:2, Size1
在for (String linha : lines)
循环的第一次迭代上被抛出,因为在那个阶段,存在列表中只有一个项目。
在填充列表后,您将能够从索引中获取每个项目。