我有两个这样的arraylist

ArrayList<Paragens> paragens = new ArrayList<Paragens>();
ArrayList<Rotas> rotas = new ArrayList<Rotas>();


Paragens是一个类,构造函数是

public Paragens(String nomeParagem) {
    this.nomeParagem = nomeParagem;
    this.existeNaRota = new String[]{"","","","","","","","","","","","","",
    "","","","","","","","","","","","","","","","","","","","","","","","",
    "","","","","","","","","","","","","","","","","","","","","","","","",
    "","","","","","","","","","","","","","","","","","","","","","","",""};
    this.id = contadorParagens++;
}


我还有另一堂课。 Rotas类。

public Rotas(String nomeRota, Paragens[] nomeParagens) {
    this.nomeRota = nomeRota;
    this.nomeParagens = nomeParagens;
    this.id = contadorRotas++;
}


因此有Paragens(每个都有一个名称[nomeParagem],一个id [contadorParagens]和它们中存在的角色[existeNaRota]。

首先,仅使用Paragens(其名称)及其nomeParagem创建用户输入id巫婆。由于Rotas是后来添加的,因此existeNaRota为空。

然后将每个Paragem添加到paragens arraylist

用户添加Rotas时,他输入Rota名称,然后输入该Paragens上存在的Rotas列表。 Rotas are finally added to rotas的arraylist。

我想做的是,当用户插入一个Paragens上存在的Rotas时,existeNaRota会用Rotas存在的Paragem填充它们。

例。

用户输入一些名称,然后按以下方式创建Paragens

paragem = new Paragens("London");
paragens.add(paragem);
paragem = new Paragens("Manchester");
paragens.add(paragem);
paragem = new Paragens("Chelsea");
paragens.add(paragem);


现在用户将这样输入Rotas

estacoes[0] = "Chelsea";
estacoes[1] = "London";
rota = new Rotas("Route A", estacoes);
rotas.add(rota);


现在,由于有一个Rota,我想回到Paragens并将名称放在existeNaRota上。

Paragens上,我有此set方法

public void setExisteNaRota(String existeNaRota, int indice) {
    this.existeNaRota[indice] = existeNaRota;
    indice++;
}


是否可以访问paragens数组列表,找到“切尔西” Paragem并将“ Rota A”添加到existeNaRota的第一个位置?

最佳答案

首先,考虑在“ Paragens”中使用List而不是数组,因为您将向其中添加元素。这将允许添加(可能在列表的开头)而无需在数组中移动元素。

其次,在Paragens中提供一种类似于addRota(Rota r)的方法,该方法将Rota添加到ListRotasParagens中。

class Paragens{
   List<Rota> existEnRota = new ArrayList<Rota>();


   public void addRota(Rota r){
       existEnRota.add(0, r);
   }
}

10-06 07:29