繁体   English   中英

如何将 Arraylist 放入 Arraylist

[英]How can i put an Arraylist into Arraylist

我有一个练习,我必须编写一个程序来管理火车的时间表。我写了所有的程序,但我不能写主课,因为我必须制作一个有 3 名乘客的 Arraylist,我不知道我必须放什么在空白处

代码:

public class Route {
private int id;
private int aeroplane;
private String departure;
private String arrival;
private ArrayList<Ticket> Tickets = new ArrayList<>() ;
public Route(){
    id = 0 ;
    aeroplane = 0  ;
    departure = " ";
    arrival = " ";
    Tickets = new ArrayList<>();
    
}

public Route(int ID, int aerop, String depar,String arriv,ArrayList<Ticket> tick ){
    id=ID;
    aeroplane=aerop;
    departure=depar;
    arrival=arriv;
    Tickets=tick;
}



public static void main(String[] args) {
   ArrayList <Train> train=new ArrayList<>();
   Route d1= new Route(0051,50,"Greece","Italy",);// what i have to write in the last blank?
   
}}

我想你有这三个类:

  • 火车
  • 车票 - 适用于多趟列车
  • 路线 - 可能包含多张工单

然后你应该像这样模拟你的路线:

public class Route {
    private final int id;
    private final int aeroplane;
    private final String departure;
    private final String arrival;
    private final List<Ticket> tickets;

    public Route(int id, int aeroplane, String departure, String arrival, List<Ticket> tickets) {
        this.id = id;
        this.aeroplane = aeroplane;
        this.departure = departure;
        this.arrival = arrival;
        this.tickets = tickets;
    }
}

您的路线类没有也不应该有火车列表。 很好,你有一张门票清单。

对于如何将 Trains 列表添加到 Route 实例化的问题,您应该首先创建一个票证,或者如果您愿意,可以创建多个票证。

public static void main(String[] args) {
    // create trains
    Train train1 = new Train(1202, "Piraeus", "Athens");
    Train train2 = new Train(1302, "Athens", "Thessaloniki");
    Train train3 = new Train(1502, "Thessaloniki", "Rome");

    // create ticket(s)
    Ticket ticket = new Ticket(95, List.of(train1, train2, train3));

    // create route and pass tickets
    Route myRoute = new Route(0051, 50, "Greece", "Italy", List.of(ticket));
}

为了在此处创建列表,我使用了工厂方法 java.util.List.of(从 Java 9 开始可用)。 你的路由类也是一个很好的记录候选者(从 Java 18 开始)。 作为记录,它看起来像:

public record RouteRecord(int id, int aeroplane, String departure, String arrival, List<Ticket> tickets) {}

另外,考虑一下不变性的概念。

在您的主要方法中(它不是一个类):

List<Ticket> tickets = new ArrayList<>();
tickets.add( new Ticket());
Route d1 = new Route(0051,50,"Greece","Italy",tickets);

正如在您需要定义构造函数之前提到的那样:

public Route(int id, int aeroplane, String departure, String arrival, List<Ticket> tickets ){
    this.id = id;
    this.aeroplane = aeroplane;
    this.departure = departure;
    this.arrival   = arrival;
    this.Tickets   = tickets;

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM