我的程序有两个类,一个类扫描名为 Flights.csv
的文件并使用这些信息构造一个 Flight 对象的数组列表,以及另一个扫描名为 Airports.csv
的文件的类。并据此创建 Airport 对象的数组列表。我想将航类对象的数组列表移动到我的 Airport 类中,以便我可以将航类的出发城市与机场城市进行比较,并打印出从哪些机场出发的航类列表。
这是 Airport 类的构造函数
import java.util.Scanner;
import java.io.*;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Airport{
String name;
double latitude;
double longitude;
int conTime;
String city;
static ArrayList<Airport> Airports = new ArrayList<Airport>();
public Airport(String nmst, double lat, double lon, int del, String cst) {
name = nmst;
latitude = lat;
longitude = lon;
conTime = del;
city = cst;
Airports.add(this);
}
这是 Flight 类构造函数
public class Flight {
String flightNum;
String cityFrom;
String cityTo;
String departTime;
String arriveTime;
String price;
String seats;
String brand;
static ArrayList<Flight> Flights = new ArrayList<Flight>();
public Flight(String flights, String cityF, String cityT, String departT, String arriveT,
String cost, String space, String name) {
flightNum = flights;
price = cost;
cityFrom = cityF;
cityTo = cityT;
departTime = departT;
arriveTime = arriveT;
seats = space;
brand = name;
Flights.add(this);
}
如何将这样的数组列表放入另一个类中?
最佳答案
为什么要在 Airport 类中创建 Airport 的 ArrayList,并在 Flight 类中创建 Flight 的 ArrayList?
如果您希望 Airport 能够查看完整的航类列表,您可以将 Flight 的 ArrayList 添加到 Airport 类中。
class Airport
{
//other variables
ArrayList<Flight> flightList;
}
您可以通过以下方式将航类列表添加到 Airport 对象中:
- 机场构造函数或
- 机场 setter (setFlights(ArrayList FlightList)) OR
- 机场中添加新航类的方法
为了能够从您的 Airport 对象中检索航类列表,您需要在您的 Airport 类中使用getter:
public ArrayList<Flight> getFlights()
{
return flightList;
}
<小时/>
完整示例:
通过添加1。机场构造函数
public static void main(String[] args)
{
ArrayList<Flight> flightList = new ArrayList<Flight>();
flightList.add(new Flight(...)); //The ... within the braces depends on your Flight constructor
flightList.add(new Flight(...)); //The ... within the braces depends on your Flight constructor
flightList.add(new Flight(...)); //The ... within the braces depends on your Flight constructor
Airport airport = new Airport(flightList); //Now airport has a list of flights
}
通过添加2。 Airport setter 方法(Mutators)
//Within your Airport class
public void setFlight(ArrayList<Flight> flightList)
{
this.flightList = flightList;
}
通过添加3。 Airport 中添加新航类的方法
如果你不想通过构造函数获取航类,并且有可能想要逐个添加新航类,你可以再创建一个 addFlight(Flight newFlight )
方法:
public void addFlight(Flight newFlight)
{
flightList.add(newFlight);
}
<小时/>
如果您想知道getter 和setter 的使用。我们使用它是因为您的航类列表将是私有(private)
。为了访问 private
成员,我们需要来自 public
方法的“帮助”。这些使我们能够访问私有(private)
成员的方法称为getter/setter,或者更好地称为accessor/mutator。
关于java - 将 ArrayList 对象移动到另一个类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27413678/