如何将数组列表放入数组列表中

  • 本文关键字:列表 数组 java arrays
  • 更新时间 :
  • 英文 :


我有一个练习,我必须写一个程序来管理火车时刻表。我写了所有的程序,我不能写主类,因为我必须做一个3个乘客的数组列表,我不知道我必须在空白

代码:

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?

}}

我想你有这三个类:

  • 车票-适用于多趟列车
  • Route -可以包含多个ticket

那么你应该这样建模你的路由:

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;
}
}

你的route类没有,也不应该有列车列表的列表。这是非常好的,你有它有一个列表的票。

对于如何将列车列表添加到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;
}