![](/img/trans.png)
[英]Java changed element in an Arraylist - need to keep previous & modify the rest
[英]Java modify Class element on arraylist
我有两个这样的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
]以及位于它们之间的rotas [ existeNaRota
]。
首先,仅使用nomeParagem
(它的名称)及其id
创建用户输入Paragens
巫婆。 由于Rotas是在以后添加的, existeNaRota
为空。
然后将每个Paragem
添加到paragens
arraylist
当用户添加Rotas
他输入Rota
名称,然后列表Paragens
上存在Rotas
。 Rotas are finally added to
Rotas Rotas are finally added to
rotas的arraylist中。
我想要做的是,当用户插入Paragens
上存在一个Rotas
, existeNaRota
是它们填充了Rotas
是Paragem
存在。
例。
用户输入一些名称,然后按Paragens
方式创建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
arraylist,找到“ Chelsea” Paragem
并将“ Rota A”添加到existeNaRota
的第一个位置?
首先,考虑在“ Paragens”中使用List
而不是数组,因为您将向其中添加元素。 这将允许添加(可能在列表的开头),而无需在数组中移动元素。
其次,在Paragens
提供类似addRota(Rota r)
,将Rota
添加到Rotas
中的Paragens
List
中。
class Paragens{
List<Rota> existEnRota = new ArrayList<Rota>();
public void addRota(Rota r){
existEnRota.add(0, r);
}
}
使用地图。
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将添加到paragen中的角色列表中,如下所示:
public class Paragens {
List<Rotas> existeNaRota = new ArrayList<Rotas>();
public void addRota(Rotas r) {
existeNaRota.add(r);
}
}
连同其他东西
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.