나는 Objects를 포함하는 arrayList를 가지고 있습니다. 각 객체는 여러 문자열을 포함합니다. 이 문자열을 가져 와서 2 차원 배열에 추가하려고합니다.2 차원 배열에 추가하는 while 루프와 while 루프
public void iterateRow(Row row)
{
int x = 0;
int y = size();
tableArray = new String[y][5];
while(x < y){
int z = 0;
for (String s: row.rowString()){
tableArray[x][z] = s;
z++;
}
x++;
}
}
행 클래스에 대한 새 인스턴스를 실행하고 만들 때마다 메소드는 행에 포함 된 문자열을 배열에 추가해야합니다. 그러나 최신 항목을 x 번 복제합니다 (여기서 x는 항목의 총 개수입니다). 여기
추가 참조를 위해 행 클래스입니다 :public class Row
{
public String appNumber;
public String name;
public String date;
public String fileLoc;
public String country;
public String elementString;
public String results[];
public Row(String appNumber, String name, String date, String fileLoc, String country, Table table)
{
this.appNumber = appNumber;
this.name = name;
this.date = date;
this.fileLoc = fileLoc;
this.country = country;
table.addApplicant(this);
}
public String[] rowString()
{
String[] a = {appNumber, name, date, fileLoc, country};
return a;
}}
나는 그것이 iterateRow() 메소드의 바보 같은 논리적 오류라고 생각하지만 난 무엇을 해결할 수없는 것. 어떤 도움을 주시면 감사하겠습니다.
편집 : 모든 사람의 도움을 받아서 while 루프를 제거했습니다. 그러나 여전히 다음 행으로 이동하기보다는 행을 복제하는 것으로 보입니까?
public void iterateRow(Row row)
{ int x = 0;
int y = size();
tableArray = new String[y][row.rowString().length];
for(int i =0; i<y;i++){
int z = 0;
for (String s: row.rowString()){
tableArray[x][z] = s;
z++;
}x++;}
}
'size()'는 무엇을 반환합니까? 배열'row()'에 동일한 행'rowString()'요소를 추가하고 있기 때문에. –
루프를 기반으로 'row'매개 변수가 절대로 변경되지 않으므로 배열을 작성하는 소스는이 'row'에 있습니다. 나는 당신의 'for each'루프가 다음 행으로 넘어 가기를 원한다고 상상할 것입니다 ... ... 또한, while 루프는 'for'루프로 단순화 될 수 있습니다. – souldzin
왜 여기에 5, tableArray = new String [y] [5]? – Machinegon