いつもお世話になっております。再三同じ質問ばかりでうんざりしてしまいますが、
どうかご容赦下さい。
インターフェースの指定されたメソッドを自作し、それを呼び出す、という問題を解いています。
以下がコードとなり、コンパイルと実行が出来る状態です。
①
上記のコードで要求仕様通りに動いてくれるのですが、clearメソッドが起動する際に「値が残ったままだからメモリを喰う」だのなんだの言われました。自分から言わせて貰えば、このような問題自体が実地でほぼ使う事はない、というか寧ろコーディングにおいても無駄且つミスの危険性を孕んでいるものでは?と思わずにはいられないのですが。全部HashMapをインポートすれば使える様になるというのに。愚痴っても仕方ないのですが、このclearメソッドの動きについて、これで問題ないのでしょうか?
②
また、putメソッドについてですが、
public V put(K key,V value){
//1 int pos = 0; pos = -1; for (int i = 0; i < count; i++) { if (keys[i] == key) { pos = i; break; } } if (pos < 0) { if (count == keys.length) { K[] keys_2 = (K[])(new Object[count + SIZE_UNIT]); V[] vals_2 = (V[])(new Object[count + SIZE_UNIT]); for (int i = 0; i < count; i++) { keys_2[i] = keys[i]; vals_2[i] = vals[i]; } keys = keys_2; vals = vals_2; } keys[count] = key; vals[count] = value; count++; } else { vals[pos] = value; } return value; }
1の部分では-1で初期化するな、と言われたので、インチキじみていますが、0で初期化した後に-1を代入する、というゴリ押し戦法を採用しているのですが、-1以外でも起動する方法はあるのでしょうか?
以上2点になりますが、再三同じ質問を繰り返しているので自分でも嫌になります。どなたかお時間がある時にでも回答して頂けたら幸いです。どうぞよろしくお願い致します。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。