Next: 1.7 プログラム引数
Up: 1 配列
Previous: 1.5 オブジェクト配列の初期化
文字列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日