ArrayList内部的StringList使用处理
StringList inside ArrayList using processing
我正在使用处理将 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;
}
}
这是我的class
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(listaVias)
的形式打印 ArrayList
将导致列表打印如下:[item1, item2, item3]
。从 println
示例的外观来看,每个项目都已正确添加到列表中。
println(listaVias.get(2))
将导致 IndexOutOfBoundsException: Index:2, Size1
在 for (String linha : lines)
循环的第一次迭代 中被抛出 ,因为在那个阶段, 列表中只有一项。
填充列表后,您将能够从索引中获取每个项目。
我正在使用处理将 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;
}
}
这是我的class
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(listaVias)
的形式打印 ArrayList
将导致列表打印如下:[item1, item2, item3]
。从 println
示例的外观来看,每个项目都已正确添加到列表中。
println(listaVias.get(2))
将导致 IndexOutOfBoundsException: Index:2, Size1
在 for (String linha : lines)
循环的第一次迭代 中被抛出 ,因为在那个阶段, 列表中只有一项。
填充列表后,您将能够从索引中获取每个项目。