質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
Java

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

Q&A

1回答

1436閲覧

インターフェースについての質問です

anna10

総合スコア24

Java

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

0グッド

1クリップ

投稿2014/12/08 01:45

いつもお世話になっております。再三同じ質問ばかりでうんざりしてしまいますが、
どうかご容赦下さい。
インターフェースの指定されたメソッドを自作し、それを呼び出す、という問題を解いています。
以下がコードとなり、コンパイルと実行が出来る状態です。


上記のコードで要求仕様通りに動いてくれるのですが、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点になりますが、再三同じ質問を繰り返しているので自分でも嫌になります。どなたかお時間がある時にでも回答して頂けたら幸いです。どうぞよろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

① についてのみ。
keys, vals を確保しなおしてやれば良いとおもいます。

lang

1 public void clear(){ 2 keys = (K[])(new Object[SIZE_UNIT]); 3 vals = (V[])(new Object[SIZE_UNIT]); 4 count = 0; 5 }

投稿2014/12/07 17:52

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問