将对象ArrayList移动​​到另一个类

时间:2014-12-11 01:00:06

标签: java object arraylist

我的程序有两个类,一个扫描名为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带到另一个班级?

1 个答案:

答案 0 :(得分:2)

为什么要在类Airport中创建Airport的ArrayList并在Flight类中创建FlightList?

如果您希望Airport能够查看完整的航班列表,您可以将航班的ArrayList添加到机场类。

class Airport
{
    //other variables
    ArrayList<Flight> flightList;
}

您可以通过以下方式将航班列表添加到Airport对象中:

  1. 机场构造函数 OR
  2. 机场设定者(setFlights(ArrayList flightList)) OR
  3. 机场增加新航班的方法
  4. 为了能够检索您的机场对象的航班列表,您需要在班级机场中使用 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