質問: ### Javaでの配列の定義の仕方について たとえばint型の配列を、全要素数9で定義するとき、 要素番号を0~8ではなく1~9で扱えるようにする方法は ありませんか?要素数を10で定義して0番目をシカトしろとか 一休さんみたいな話じゃなくて。 数独解析のプログラムを書こうとしているのですが、 あるマスに数字を埋めることが可能かを判断するための フラグ配列を定義する必要があります。数独は1~9の いずれかの数字を埋めるパズルですが、例えばあるマスには 8の数字を埋めることができない場合、8に該当するフラグを ONにするというやり方にしようと考えています。 9つの数字についてフラグを用意する場合、 9つの要素数を持つ配列を用意するという発想になったんですが、 その場合0~8の要素番号で扱える配列になります。 この場合、8に該当するフラグならば要素番号が7のように、 数字をnとすると配列の要素番号は(n - 1)になります。 じゃあそう書けよって言われそうですが、 他人が見た時、ソースを編集するときに 数字がnのときは要素番号もnといった対応のほうが わかりやすいと思うんです。 これを実現しようとすると配列を10で定義して 要素番号を0~9として扱えますが、最初の要素番号0の メモリ領域が無駄になります。別に無駄になっても 影響はないと言えばないです。ただ、無駄にしなくても いい方法があるなら知ってみたいなと思ったので。 C言語であればマクロで解決できる問題です。 例 : #define STATUS_NUMBER( ROW, COL, NUM ) array[ ( ROW - 1 ) ][ ( COL - 1 ) ][ ( NUM - 1 ) ]
回答: Javaの配列のルールとして「要素番号は0から始まる」となっておりますので、無理だと思います。 http://www.task-notes.com/entry/20140923/1411477102