3

さまざまなデータを含む多数の配列があります。それぞれに次のような名前が付いています: rsf_wings, isa_wings, isa_ships, isa_civsetc.

String arrayName渡されたさまざまなコンポーネントからビルドする関数があります。

public static void AddShips(String fac, String type)
{
        String member = null;
        String arrayName = fac+"_"+type;
}

ここで、このarrayNameを配列の実際の名前に変換する方法が必要です。おおよそ次のようになります。

member = arrayName[(int) (arrayName.length * Math.random())];
4

4 に答える 4

1

配列をマップに入れると、同様のことができます。

public class Holder {

    private Map<String, int[]> arrays = new HashMap<String, int[]>();

    public Holder(String... names) {
          for (String name : names) {
               arrays.put(name, new int[1024]);
          }
    }

    public void addShips(String fac, String type)
    {
        String arrayName = fac+"_"+type;
        int[] array = arrays.get(arrayName);
        ...
    }
}

int[] の代わりに ,List<Integer>を使用することをお勧めします。ArrayList<Integer>

public class Holder {

    private Map<String, List<Integer>> arrays = new HashMap<String, List<Integer>>();

    public Holder(String... names) {
          for (String name : names) {
               arrays.put(name, new ArrayList<Integer>());
          }
    }

    public void addShips(String fac, String type)
    {
        String arrayName = fac+"_"+type;
        List<Integer> array = arrays.get(arrayName);
        ...
    }
}
于 2013-10-24T08:22:55.737 に答える