まあ、1 つのアプローチは、マップとリストを使用することです。
HashMap<Zone, ArrayList<Camera>> building = new HashMap<>();
ArrayList<Camera> zone1cameras = new ArrayList<>();
zone1cameras.add(camera1);
zone1cameras.add(camera2);
...
building.put(zone, zone1cameras);
しかし、すでにZone
オブジェクトがある場合は、次のようなものではないでしょうか
public class Zone
{
// Members
private ArrayList<Camera> cameras = new ArrayList<>();
// Methods
public void registerCamera(Camera c){ cameras.add(c); }
public List<Camera> getCameras(){ return cameras; }
}
そして、Zone
s を別のリストに保存できます。たとえば、次のようになります。
ArrayList<Zone> zones = new ArrayList<>();
zones.add(zone1);
夢中になりたい場合は、次のregisterCamera
ようなメソッドをチェーンできます。
public class Zone
{
// Members
private ArrayList<Camera> cameras = new ArrayList<>();
// Methods
public Zone registerCamera(Camera c){ cameras.add(c); return this; }
public List<Camera> getCameras(){ return cameras; }
}
これにより、次のようなことができます
ArrayList<Zone> zones = new ArrayList<>();
zones.add(new Zone().registerCamera(cam1).registerCamera(cam2).registerCamera(cam3));