2011-11-28 64 views
0

類元素,我有兩個數組列表這樣的Java修改的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]。

首先,使用者輸入Paragens巫僅與nomeParagem(它的名稱)和它的id創建。由於ROTAS加入後者,existeNaRota它是空的。

然後每個Paragem加到paragens arrayl ist

當用戶添加Rotas時,他輸入Rota名稱,然後輸入存在於該Rotas上的Paragens的列表。 Rotas are finally added to rotas` arraylist。

我想要做的是,當用戶插入Paragens上一個Rotas存在,existeNaRota是它們填充了RotasParagem存在。

例子。

用戶輸入一些名字,然後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數組列表,找到「切爾西」 Paragem,並添加「羅塔A」到existeNaRota第一的位置?

回答

2

首先,考慮在`Paragens'中使用List而不是數組,因爲您將要添加元素。這將允許在不移動數組中的元素的情況下(可能添加到列表的頭部)。

其次,提供像在addRota(Rota r)Paragens的方法,其將所述Rota到的RotasListParagens

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


    public void addRota(Rota r){ 
     existEnRota.add(0, r); 
    } 
} 
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); 
    } 
} 

連同其他東西