[英]Store all the subarrays of a given array in an ArrayList of ArrayList and display the contents of the ArrayList
[英]Display contents of ArrayList within an ArrayList
我目前正在制作一個程序,為該程序的航班添加乘客,包括名字、姓氏和每周積分。 然后我需要列出每個乘客的積分。 我打算讓它在輸出時看起來像這樣:
約翰·多伊 100 200 300 400
傑里·格洛克 123 400 345 200
等等。我不能使用普通數組或二維數組,因為我不知道會有多少乘客。
ArrayList <ArrayList<String>> passengers = new ArrayList <ArrayList<String>>();
ArrayList <String> firstName = new ArrayList <String> ();
ArrayList <String> lastName = new ArrayList <String> ();
ArrayList <String> weekOne = new ArrayList <String> ();
ArrayList <String> weekTwo = new ArrayList <String> ();
ArrayList <String> weekThree = new ArrayList <String> ();
ArrayList <String> weekFour = new ArrayList <String> ();
int numOfPas = 0;
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
String firstN = firstNameInput.getText();
firstName.add(firstN);
String lastN = lastNameInput.getText();
lastName.add(lastN);
String week1 = weekOneInput.getText();
weekOne.add(week1);
String week2 = weekTwoInput.getText();
weekTwo.add(week2);
String week3 = weekThreeInput.getText();
weekThree.add(week3);
String week4 = weekFourInput.getText();
weekFour.add(week4);
listButton.setEnabled(true);
numOfPas++;
}
private void listButtonActionPerformed(java.awt.event.ActionEvent evt) {
String output = "";
passengers.add(firstName);
passengers.add(lastName);
passengers.add(weekOne);
passengers.add(weekTwo);
passengers.add(weekThree);
passengers.add(weekFour);
for (int x=0; x<passengers.size(); x++) {
for (int y=0; y< numOfPas; y++) {
output = output + " " + passengers.get(x).get(y);
}
output = output + "\n";
}
outputField.setText(output);
}
這個問題是它顯示的更像是這樣的:
約翰傑瑞
格洛克
100 123
200 400
300 345
400 200
我還需要一種方法來為個別乘客找到每周積分,盡管我還沒有做到這一點。
我認為應該是:
for (int y=0; y< numOfPas; y++) {
for (int x=0; x<passengers.size(); x++) {
output = output + " " + passengers.get(x).get(y);
}
output = output + "\n";
}
問:這真的是分配任務的方式:為每位乘客,每四個星期分配一個航班#?
如果是這樣,請考慮這樣的事情:
class Passenger {
String firstName, lastName;
String flights[4];
public Passenger () {
firstName = firstNameInput.getText();
lastName = lastNameInput.getText();
flights[0] = weekOneInput.getText();
flights[1] = weekTwoInput.getText();
flights[2] = weekThreeInput.getText();
flights[3] = weekFourInput.getText();
...
然后您的“添加”按鈕可能會執行以下操作:
private void addButtonActionPerformed(java.awt.event.ActionEvent evt) {
passengersList.add(new Passenger());
numOfPas++;
listButton.setEnabled(true);
...
在“現實世界”中,您的“域模型”可能由“客戶”和“飛行”等類組成。
“航班”將具有“列出乘客”之類的內容。
但是對於這個任務,你可能比單獨列出“WeekOne”、“WeekTwo”等做得更好;)
你犯了一個小錯誤,做起來很簡單。
只需更改此行
output = output + " " + passengers.get(x).get(y);
至:
output = output + " " + passenger.get(y).get(x);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.