質問編集履歴

1 なぜそれを知りたいかの理由の追加

nvcpg_198

nvcpg_198 score 23

2017/09/12 13:47  投稿

Javaでの配列の定義の仕方について
###Javaでの配列の定義の仕方について
たとえばint型の配列を、全要素数10で定義するとき、
要素番号を0~9ではなく1~10で扱えるようにする方法は
ありませんか?要素数を11で定義して0番目をシカトしろとか
一休さんみたいな話じゃなくて。
たとえば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

    17768 questions

    Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る