2017-03-16 1 views
1

現在、私はアレイプログラムを作成しており、インデックス番号を再び使用できないようにする方法を知りたいと思います。たとえば、インデックス[3]に値を設定した場合、インデックス[3]を使用してその値を置き換えることはできませんが、アクセスできます。中古インデックスを交換することができないようにする方法

+0

少し混乱していますが、例を挙げることはできますか?一度値を配列内の位置(インデックス[3]など)に設定すると、アクセスできるようにしたいが、変更できないようにしたいとしますか? – aUserHimself

+0

「もう一度使用できません」というのは、既に使用しているインデックスを検出して、プログラムが別のインデックスを選択することを意味しますか? – Harmlezz

+0

使用済みのインデックスをセット内に保存できます。次に、ユーザーがすでにそのセットに含まれている索引を割り当てようとした場合、それを処理できます。可能なすべての値を格納する必要がある場合は、 – chatton

答えて

0

配列全体をいくつかの未定義の値に初期化することができます。 -1。そのインデックスに値を入れる前に、-1であるかどうかをチェックし、それ以外の場合はputをしないでください。配列に可能な値をすべて格納する必要がある場合は、これを解決する唯一の方法は、あなたが配列のインデックスiに値を置くと、boolean_array [i] = trueとなります。そして、値を入れる前にboolean_array [i]がfalseであるかどうかをチェックします。インデックスは既に使用されています。

+0

は機能しません。 – Harmlezz

+0

答えを編集しました。 – Sakalya

0

いいえ、あなたがしようとしているのはインデックスを「最終的」にすることですが、できません。 配列全体を最終的にしか設定することはできますが、必要な制限はありません。

これを実現するには、ラッパーを使用する必要がありますが、アレイを直接使用しないでください。例えば

myArrayWraper.add("toto",3) 

あなたは、配列を含むクラスMyArrayWraperを作成し、インデックスが既に使用されているかどうかを確認します方法addを実装します。

関連する問題