こんにちは。たいら(@tairaengineer2)です。
今回の記事は、Javaで開発する人ならだれでもお世話になるeclipseのデバッグの機能の1つである「値の変更」の解説記事です。
Hashmapの「値の変更」の仕方をできるだけわかりやすく、現役Javaエンジニアのたいらが解説します。
String型の変数や配列の「値の変更」の解説は↓記事をご参照ください。
ArrayListの「値の変更」の解説は↓記事をご参照ください。
スポンサーリンク
前提条件:eclipseの環境
デバッグの「値の変更」で私が解説で使うeclipseのバージョンをお伝えします。
バージョン | Eclipse4.7 Oxygen |
---|
下準備
HashMapの「値の変更」の解説に使うプログラムは、keyにInteger型、valueにString型のHashMapを作り表示させるという単純なプログラムです。
Java
package hashMapSample;
import java.util.HashMap;
import java.util.Map;
/**
* HashMapのデバッグサンプル
*
*/
public class HashMapSample {
public static void main(String[] args) {
Map<Integer, String> sampleMap = new HashMap<>();
sampleMap.put(1, "one");
sampleMap.put(3, "three");
sampleMap.put(2, "two");
System.out.println("----------デバッグ前----------");
sampleMap.entrySet().stream()
.map(e -> e.getKey() + ":" + e.getValue())
.forEach(System.out::println);
System.out.println("----------デバッグ後----------");
sampleMap.entrySet().stream()
.map(e -> e.getKey() + ":" + e.getValue())
.forEach(System.out::println);
System.out.println("----------デバッグ終了----------");
}
}
値を変更しない時の実行結果
----------デバッグ前----------
1:one
2:two
3:three
----------デバッグ後----------
1:one
2:two
3:three
----------デバッグ終了----------
当たり前ですが、「値の変更」をしてないので同じものが表示されてます。
では、「値の変更」をやっていきます。
スポンサーリンク
HashMapの「値の変更」をする
ブレークポイントはここに置きます。
ブレークポイントとは、通常の「実行」ではなく「デバッグ」で実行した場合、ブレークポイントで指定した行を実行する前で止まってくれるポイントです。
今回でいうと、23行目の
sampleMap.entrySet().stream()
.map(e -> e.getKey() + ":" + e.getValue())
.forEach(System.out::println);
が実行される前に変更したいので、23行目にブレークポイントを設定します。
ブレークポイントの設定の仕方は、以下の記事をご参考ください。
では、色んなパターンの「値の変更」をしていきます!
HashMapの「値の変更」で以下のことを説明します。
- 新しく要素を追加する
- keyを変更する
- valueを変更する
- ある要素を削除する
- HashMapごと削除する
新しく要素を追加する
HashMapに新しく要素を追加しましょう!
eclipseの上部にある「実行」タブに「デバッグ」があるのでそこをクリック。
クリックすると、↓のように開きます。
その中にタブに「デバッグ」、「Javaアプリケーション」の順にクリック。
するとブレークポイントの指定した通りに止まってくれます。
もちろん中断中なので、画面に出力していません。
では「値の変更」をしていきます。
ブレークポイントで中断しているとデバッグ画面になり、画面右上に「変数」タブ、「ブレークポイント」タブ、「式」タブがあります。
そこで「変数」タブを選択。
ここでは今宣言されている変数の状態を見ることができます。
今のsampleMapの中身を見てみます。
見るときは、sampleMapを左クリック。
今はまだ「値の変更」をしてないので、sampleMapの中身は
{1=one, 2=two, 3=three}
です。
では、新しく要素を追加しましょう!
「式」タブを選択。
ここで新たな式を書くことで、値を変更することが出来ます!
「新しい式を追加する」を左クリック。
すると、カーソルがクリックした欄に行き、入力できるようになります。
新しく要素を追加する式を書きましょう!
sampleMap.put(4,"four")
HashMapに新しく要素を追加するputメソッドで追加してやればOKです!
入力したあと、エンターキーを押します。
このように追加されました!
本当に追加されているか、「変数」タブを開いてsampleMapの中身を確認してみましょう。
要素は新しく追加されました!
では、ずっと止めていた処理を再開しましょう。
再開するやり方はF8ボタンかまたは
赤枠で囲っている再開ボタンを押します。
この再開ボタンは、次のブレークポイントまで一気に処理が進みます。
なのでこのプログラムでは次のブレークポイントが無いので、プログラムの最後まで処理が進みます。
では、再開ボタンを押してみます!
すると処理が終わり、変更した通りの値が表示されました!
以上が、新しく要素を追加するやり方です。
keyを変更する
次はkeyを変更してみましょう。
先ほどと同じようにデバッグします。
ブレークポイントを指定した行の実行前で止まるところまでは同じです。
クリックして
その中にタブに「デバッグ」、「Javaアプリケーション」の順にクリック。
ブレークポイントの指定した通りに止まります。
ここから違います。
「変数」タブを開きます。
当たり前ですが、まだ何もいじっていないので変わっていません。
sampleMapを左クリック。
このように、sampleMapに格納されている要素を1つずつ確認することが出来ます。
今回は[2]のkeyを変更してみましょう。
[2]を左クリック。
このようにkeyとvalueが格納されています。
さらにkeyを左クリック。
すると、keyに何が入っているか見えるようになりました!
この状態で右クリックします。
その中の「値の変更」を左クリック。
すると、こんな画面がポップアップします。
ポップアップした画面の欄を見てみると、もともとのkeyの値である3が入力されています。
では、ここに5を入力してみましょう。
「OK」ボタンを押します。
keyの変更ができました!
では、ずっと止めていた処理を再開しましょう。
先ほどと同じように
F8ボタンか赤枠で囲っている再開ボタンを押します。
keyの値の変更ができました!
以上が、keyの値を変更するやり方です。
valueを変更する
今度はvalueを変更してみましょう。
先ほどと同じようにデバッグします。
ブレークポイントを指定した行の実行前で止まるところまでは同じです。
クリックして
その中にタブに「デバッグ」、「Javaアプリケーション」の順にクリック。
ブレークポイントの指定した通りに止まります。
「式」タブを開きます。
「新しい式を追加する」を左クリック。
新しく要素を追加する式を書きます。
今回は、keyが2の[two]を[twotwo]に変更します。
sampleMap.put(2,"twotwo")
入力してエンターキーを押します。
putメソッドを使って、valueの値を変更することが出来ました!
本当に変更できているか、「変数」タブを開いてsampleMapの中身を確認してみましょう。
valueの変更ができていますね!
では、ずっと止めていた処理を再開しましょう。
先ほどと同じように
F8ボタンか赤枠で囲っている再開ボタンを押します。
無事変更されたvalueで表示されました!
以上が、valueを変更するやり方です。
ある要素を削除する
今度は要素を削除してみましょう。
先ほどと同じようにデバッグします。
ブレークポイントを指定した行の実行前で止まるところまでは同じです。
クリックして
その中にタブに「デバッグ」、「Javaアプリケーション」の順にクリック。
ブレークポイントの指定した通りに止まります。
「式」タブを開きます。
「新しい式を追加する」を左クリック。
ある要素を削除する式を書きます。
今回は、keyが2の要素を削除します。
sampleMap.remove(2)
HashMapの要素を削除するremoveメソッドを使います。
入力してエンターキーを押します。
無事削除できました!
本当に削除できているか、「変数」タブを開いてsampleMapの中身を確認してみましょう。
ちゃんと削除されていますね!
では、ずっと止めていた処理を再開しましょう。
先ほどと同じように
F8ボタンか赤枠で囲っている再開ボタンを押します。
無事削除された要素は表示されませんでした!
以上が、ある要素を削除するやり方です。
HashMapごと削除する
最後はHashMapごと削除してみましょう。
先ほどと同じようにデバッグします。
ブレークポイントを指定した行の実行前で止まるところまでは同じです。
クリックして
その中にタブに「デバッグ」、「Javaアプリケーション」の順にクリック。
ブレークポイントの指定した通りに止まります。
「式」タブを開きます。
「新しい式を追加する」を左クリック。
HashMapを削除する式を書きます。
sampleMap.clear()
HashMapごと削除するclearメソッドを使います。
入力してエンターキーを押します。
無事削除できました!
本当に削除できているか、「変数」タブを開いてsampleMapの中身を確認してみましょう。
ちゃんと削除されていますね!
では、ずっと止めていた処理を再開しましょう。
先ほどと同じように
F8ボタンか赤枠で囲っている再開ボタンを押します。
表示されませんでしたね!
以上が、hashMapを削除するやり方です。
スポンサーリンク
まとめ
以上が、eclipseでHashMapをデバッグで「値の変更」をするやり方です。
あなたのご参考になれば幸いです。
ではでは~(・ω・)ノシ
ほかにも勉強記事を書いてます。
よければご参考ください。