java - 将 ArrayList 对象移动到另一个类

标签 java object arraylist

我的程序有两个类,一个类扫描名为 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 对象中:

  1. 机场构造函数
  2. 机场 setter (setFlights(ArrayList FlightList)) OR
  3. 机场中添加新航类的方法

为了能够从您的 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/

相关文章:

java - 尝试在Java中更改文本文件

java - 有谁知道如何向 org.w3c.dom.Element 添加值以实例化 MiningSchema 和 SupportVectorMachineModel ?

java - 提高立方体引擎性能

java - 使用 PDFBox 2.0.5 创建 PDF 按钮,显示/隐藏页面上的另一个按钮。只有最后创建的集合才能正常工作

java - Spring-WS 的 JAXB header 安全性

Java 对象值不一致

java - 从 Asynctask 返回数组列表

javascript - 使用js对象调用其他函数的函数

java - 计算字符串的长度和 "padding"it

java - 如何从对象列表中提取元素并将其存储在字符串数组中