我的程序有两个类,一个扫描名为Flights.csv
的文件并使用该信息构建Flight对象的arraylist,另一个类扫描名为Airports.csv
的文件并创建一个arraylist机场对象来自此。我想将我的飞行物体的arraylist移动到我的机场班级,这样我就可以比较航班从机场所在的城市开始,并列出哪些航班从哪些机场出发。
这里是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 Class构造函数
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);
}
你怎么把这样的arraylist带到另一个班级?
答案 0 :(得分:2)
为什么要在类Airport中创建Airport的ArrayList并在Flight类中创建FlightList?
如果您希望Airport能够查看完整的航班列表,您可以将航班的ArrayList添加到机场类。
class Airport
{
//other variables
ArrayList<Flight> flightList;
}
您可以通过以下方式将航班列表添加到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。机场制定者方法(Mutators)
//Within your Airport class
public void setFlight(ArrayList<Flight> flightList)
{
this.flightList = flightList;
}
通过添加3。机场增加新航班的方法
如果您不希望通过构造函数获得航班,并且您可能希望逐个添加新航班,则可以创建另一个addFlight(Flight newFlight)
方法:
public void addFlight(Flight newFlight)
{
flightList.add(newFlight);
}
如果您想知道使用 getter和setter 。我们正在使用它,因为您的flightList将是private
。要访问private
成员,我们需要public
方法的“帮助”。这些让我们可以访问private
成员的方法称为 getter / setter ,或者更好地称为 accessor / mutator 。