作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在迭代 ArrayList
时遇到一些问题。我有一个名为 Row
的类(class)延伸ArrayList<String>
。我有另一个名为 Table
的类(class)延伸ArrayList<Row>
.
我正在尝试迭代 Table 类来转换 ArrayList
行转换为二维字符串数组。
这是我的 Table
的代码类:
public class Table extends ArrayList<Row>
{
public Row[] appArray; //Array of single applicant details
public String tableArray[][]; //Array of every applicant
private ArrayList<Row> ar;
private Row r;
public Table()
{
}
public void addApplicant(Row app)
{
add(app);
displayable();
}
public void convertToArray()
{
int x = size();
appArray=toArray(new Row[x]);
}
public void displayable()
{
int i,j;
for (Row r: ar)
i=0;
for(String s: r){
j=0;
tableArray[i][j]=s;
j++;
}
}}
这是Row
类:
public class Row extends ArrayList<String>
{
public Row(String appNumber, String name, String date, String fileLoc, String country, Table table)
{
addDetails(appNumber,name,date,fileLoc,country);
table.addApplicant(this);
}
public void addDetails(String appNumber, String name, String date, String fileLoc, String country)
{
add(appNumber);
add(name);
add(date);
add(fileLoc);
add(country);
}}
我遇到问题的方法是 displayable()
在 Table
类(class)。它告诉我i may not have been initialized
但是,如果我在每个循环的第二个中初始化它,它将仅迭代我的 Table ArrayList
中的第一个元素。 ?
提前感谢您的指点。
最佳答案
您刚刚错过了 for (Row r: ar)
循环中的 block 。
此外,如Fortega请注意,您永远不会在代码中增加 i
,并且我认为您在错误的位置将计数器归零。
所以,而不是:
for (Row r: ar)
i=0;
for(String s: r){
j=0;
tableArray[i][j]=s;
j++;
}
你应该这样写:
i=0;
for (Row r: ar) {
j=0;
for(String s: r){
tableArray[i][j]=s;
j++;
}
i++;
}
或者更好地缩小计数器的可见区域并将声明与初始化连接起来:
// Remove previous declarations
int i=0;
for (Row r: ar) {
int j=0;
for(String s: r){
tableArray[i][j]=s;
j++;
}
i++;
}
关于java - 遍历 ArrayList <Object<String>>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15342611/
我是一名优秀的程序员,十分优秀!