next up previous
Next: 1.7 プログラム引数 Up: 1 配列 Previous: 1.5 オブジェクト配列の初期化

1.6 配列を返すメソッド

文字列Stringの配列を返すメソッドの例を以下に示す.

// ReturnArray.java
public class ReturnArray {

  static String[] cities = {
    "Tokyo", "Kyoto", "Osaka", "Hiroshima" };

  static String[] citySet(int n) {
    n = Math.abs(n) % (cities.length + 1);
    String[] results = new String[n];
    int[] picks = new int[n];
    
    for(int i = 0; i < picks.length; i++)
      picks[i] = -1;
    for(int i = 0; i < picks.length; i++) {
      retry:
      while(true) {
        int t =
          (int)(Math.random() * cities.length);
        for(int j = 0; j < i; j++)
          if(picks[j] == t) continue retry;
        picks[i] = t;
        results[i] = cities[t];
        break;
      }
    }
    return results;
  }
  public static void main(String[] args) {
    for(int i = 0; i < cities.length; i++) {
      System.out.println(
        "citySet(" + i + ") = ");
      String[] cl = citySet(cities.length);
      for(int j = 0; j < cl.length; j++)
        System.out.println("\t" + cl[j]);
    }
  }
}
実行結果は次のようになる.

% java ReturnArray
citySet(0) = 
        Kyoto
        Tokyo
        Hiroshima
        Osaka
citySet(1) = 
        Tokyo
        Kyoto
        Osaka
        Hiroshima
citySet(2) = 
        Tokyo
        Kyoto
        Hiroshima
        Osaka
citySet(3) = 
        Hiroshima
        Kyoto
        Tokyo
        Osaka


generated through LaTeX2HTML. M.Inaba 平成18年5月7日