【问题标题】:Moving an object ArrayList to another class [closed]将对象 ArrayList 移动到另一个类 [关闭]
【发布时间】:2015-02-09 09:29:26
【问题描述】:

我的程序有两个类,一个扫描一个名为 Flights.csv 的文件并使用该信息构造一个 Flight 对象的数组列表,另一个类扫描一个名为 Airports.csv 的文件并创建一个机场对象的数组列表这。我想将我的航班对象的数组列表移动到我的 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 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);
}

如何将这样的数组列表放入另一个类?

【问题讨论】:

  • 创建getter() 方法?

标签: java object arraylist


【解决方案1】:

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

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

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

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

  1. 机场构造函数
  2. 机场设置器 (setFlights(ArrayList flightList)) OR
  3. 机场中添加新航班的方法

为了能够检索您的 Airport 对象中的航班列表,您需要在您的 Class 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 的用法。我们使用它是因为您的 flightList 将是 private。为了访问private 成员,我们需要public 方法的“帮助”。这些使我们能够访问private 成员的方法称为getter/setter,或者更好地称为accessor/mutator

【讨论】:

  • 请在您的答案中添加 getter 和 setter 概念
  • @KickButtowski 你的意思是你想让我解释一下 getter 和 setter?
  • 是的,所以你可以得到更多信息的答案我已经 +1 了
  • @KickButtowski 谢谢,我在回复中添加了更多内容..
  • 抱歉,我想通了,这只是 Flight.Flights,我不知道你能做到。
猜你喜欢
  • 2012-06-30
  • 1970-01-01
  • 2016-08-02
  • 2017-07-11
  • 1970-01-01
  • 2017-05-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多