我有两个这样的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++;
}
我有另一堂课。罗塔斯课程。
public Rotas(String nomeRota, Paragens[] nomeParagens) {
this.nomeRota = nomeRota;
this.nomeParagens = nomeParagens;
this.id = contadorRotas++;
}
所以有Paragens
(每个名称为{nomeParagem
],ID [contadorParagens
]以及它们存在的变种[existeNaRota
]。< / p>
首先,用户输入Paragens
仅使用nomeParagem
(名称)及其id
创建。由于后者添加了Rotas,existeNaRota
它是空的。
然后将每个Paragem
添加到paragens
arraylist
当用户添加Rotas
时,他输入Rota
名称,然后输入Paragens
上存在的Rotas
列表。 Rotas are finally added to
rotas` arraylist。
我想要做的是,当用户插入一个Paragens
上存在的Rotas
时,existeNaRota
会填充Rotas
存在Paragem
的{{1}}
实施例
用户输入一些名称,然后创建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
我有这个设定方法
public void setExisteNaRota(String existeNaRota, int indice) {
this.existeNaRota[indice] = existeNaRota;
indice++;
}
是否可以访问paragens
arraylist,找到“Chelsea”Paragem
并将“Rota A”添加到existeNaRota
的第一个位置?
答案 0 :(得分:2)
首先,考虑在“Paragens”中使用List
而不是数组,因为您要向其中添加元素。这将允许添加(可能在列表的头部)而不移动数组中的元素。
其次,在Paragens
addRota(Rota r)
中提供一种方法,将Rota
添加到List
中Rotas
的{{1}}。< / p>
Paragens
答案 1 :(得分:1)
使用地图。
Map<String, Paragens> paragens = new HashMap<String, Paragens>();
paragens.put("London", new Paragens("London");
paragens.put("Chelsea", new Paragens("Chelsea");
paragens.put("Manchester", new Paragens("Manchester");
estacoes[0] = "Chelsea";
estacoes[1] = "London";
Rotas rota = new Rotas("Route A", estacoes);
rotas.add(rota);
Paragens p = paragens.get(estacoes[0]);
if (p != null) {
p.addRota(rota);
}
p = paragens.get(estacoes[1]);
if (p != null) {
p.addRota(rota);
}
假设这里addRota添加到paragens中的rotas列表,如下所示:
public class Paragens {
List<Rotas> existeNaRota = new ArrayList<Rotas>();
public void addRota(Rotas r) {
existeNaRota.add(r);
}
}
以及其他事项