🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Java

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

Q&A

2回答

3454閲覧

連想配列の操作について

javaknow8282

総合スコア13

Java

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

0グッド

0クリップ

投稿2019/11/22 15:48

▼何をしたいのか
変数 String key にシステムから入力値が与えられている。

下記の情報を持つHashMapインスタンスを作成し、入力値である変数keyを用いて値を取得し、出力したい。

key : value
"name" : "技育助武"
"age" : "20"
"address" : "東京"

▼何が起こっているのか

エラー文
Main.java:10: error: variable key is already defined in method main(String[])
HashMap<String, String> key = new HashMap<String, String>();
^
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:16: error: cannot find symbol
ArrayList<HashMap> data = new ArrayList<HashMap>();
^
symbol: class ArrayList
location: class Main
Main.java:16: error: cannot find symbol
ArrayList<HashMap> data = new ArrayList<HashMap>();
^
symbol: class ArrayList
location: class Main
6 errors

Main.java:10: error: variable key is already defined in method main(String[])
HashMap<String, String> key = new HashMap<String, String>();
^
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:16: error: cannot find symbol
ArrayList<HashMap> data = new ArrayList<HashMap>();
^
symbol: class ArrayList
location: class Main
Main.java:16: error: cannot find symbol
ArrayList<HashMap> data = new ArrayList<HashMap>();
^
symbol: class ArrayList
location: class Main
6 errors

Main.java:10: error: variable key is already defined in method main(String[])
HashMap<String, String> key = new HashMap<String, String>();
^
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:13: error: cannot find symbol
key.put("name","技育助武");key.put("age","20");key.put("address","東京");
^
symbol: method put(String,String)
location: variable key of type String
Main.java:16: error: cannot find symbol
ArrayList<HashMap> data = new ArrayList<HashMap>();
^
symbol: class ArrayList
location: class Main
Main.java:16: error: cannot find symbol
ArrayList<HashMap> data = new ArrayList<HashMap>();
^
symbol: class ArrayList
location: class Main
6 errors

▼ソースコード ※スレッドに添付

import java.util.Scanner; import java.util.HashMap; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String key = scan.next(); //HashMapインスタンス作成 HashMap<String, String> key = new HashMap<String, String>(); //HashMapに情報を格納 key.put("name","技育助武");key.put("age","20");key.put("address","東京"); //key情報を入れる配列 ArrayList<HashMap> data = new ArrayList<HashMap>(); //keyの情報をArrayListに追加 data.add(key); //key情報を表示 if(key.equals("name")){ System.out.println(data.get(0)); }else if(key.equals("age")){ System.out.println(data.get(1)); }else if(key.equals("address")){ System.out.println(data.get(2)); } } }

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/11/22 15:54

エラーに書いてありますが、訳せってことでしょうか? 後、わざわざ独自のフォーマットで書いておいて、何を聞きたいのかは書かないんですね
ironya

2019/11/22 22:16

Java に連想配列はありません。JavaScript の質問にしてはソースが違うし・・・。 タグ付け、タイトル、質問本体の記述は整合性を保ってください。 今回の場合タイトルが不適切に思いますので訂正してください。 回答する側が混乱します。
Zuishin

2019/11/23 00:12

Java に連想配列が無いなら JavaScript にも無いという話にはなりませんか?
ironya

2019/11/25 04:13

Javaの場合、`[ ]` で括って数値のインデックス値以外をプログラミング言語として扱えない、という意味で連想配列はない、と表現しました。 連想配列の機能性を実現するために java.util.Map を使えるとは思いますが。。。
LouiS0616

2019/11/25 11:43 編集

リテラル表現ができるかどうかは、連想配列という言葉の定義には何ら関係しないように思います。
guest

回答2

0

java

1 String key = scan.next(); 2 3 HashMap<String, String> key = new HashMap<String, String>();

同名の変数は同一スコープに宣言できません。

投稿2019/11/22 15:51

swordone

総合スコア20669

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

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

javaknow8282

2019/11/22 15:54

この場合、HashMap<String, String> key = new HashMap<String, String>();をなくせばいいのでしょうか?
swordone

2019/11/22 15:57

なんで「なくす」という発想になるの?
javaknow8282

2019/11/22 16:08

外に出すかStringを帰るのですかね?汗
ironya

2019/11/22 22:12

key を別の名前にすれば良いのですが、変数ってわかってますか? HashMap 云々以前にプログラミング言語の仕様そのものの基礎的な部分を学習された方が良いと思います。 その辺は最低限理解していないと質問と回答が噛み合うわけがありません。
momon-ga

2019/11/25 02:31 編集

GEEK JOBの課題?講師とかに聞けばいいんじゃないか。 あ、ここに書くと回答に対してのコメントみたいになっちゃう? 質問者へのコメントです<講師に聞けば
guest

0

皆さんがおっしゃっているとおり、質問者さんはまだ少しJavaそのものの理解が足りていない部分があると思います。どうして足りていないのかかは私には分かりませんが、でも質問者さんのコードも恐らくそれなりに考えて書いた結果なのではないかと、私は思っています。

なので、少しでも質問者さんの役に立てるよう、回答にはなっていないのですが、質問者さんのコードを編集して、連想配列(HashMap)の中身を出力してみるコードを書いてみました。

Java

1import java.util.Scanner; 2import java.util.HashMap; 3/* ---------------- */ 4/* ここ追加しました */ 5/* ---------------- */ 6import java.util.ArrayList; 7 8public class Main { 9 public static void main(String[] args) { 10 /* -------------------------- */ 11 /* ここ一旦コメントにしました */ 12 /* -------------------------- */ 13 // Scanner scan = new Scanner(System.in); 14 // String key = scan.next(); 15 16 //HashMapインスタンス作成 17 HashMap<String, String> key = new HashMap<String, String>(); 18 19 //HashMapに情報を格納 20 key.put("name","技育助武");key.put("age","20");key.put("address","東京"); 21 22 /* ------------------------------------- */ 23 /* ここでkeyに何が入っているか確認します */ 24 /* ------------------------------------- */ 25 System.out.println("ここでkeyに何が入っているか確認します"); 26 System.out.println(key.get("name")); 27 System.out.println(key.get("age")); 28 System.out.println(key.get("address")); 29 30 //key情報を入れる配列 31 ArrayList<HashMap> data = new ArrayList<HashMap>(); 32 33 //keyの情報をArrayListに追加 34 data.add(key); 35 36 /* -------------------------------------- */ 37 /* ここでdataに何が入っているか確認します */ 38 /* -------------------------------------- */ 39 System.out.println("ここでdataに何が入っているか確認します"); 40 System.out.println(data.get(0).get("name")); 41 System.out.println(data.get(0).get("age")); 42 System.out.println(data.get(0).get("address")); 43 44 //key情報を表示 45 /* -------------------------- */ 46 /* ここ一旦コメントにしました */ 47 /* -------------------------- */ 48 // if(key.equals("name")){ 49 // System.out.println(data.get(0)); 50 // }else if(key.equals("age")){ 51 // System.out.println(data.get(1)); 52 // }else if(key.equals("address")){ 53 // System.out.println(data.get(2)); 54 // } 55 } 56}

HashMapに値を格納した後、その結果をどう取り出すか?と
ArrayList<HashMap>にHashMapを追加したものから、値をどう取り出すかを書いたつもりです。

参考になればいいのですが、あまり説明が得意でないので、分からなかったらごめんなさい。

投稿2019/11/25 11:21

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

jhgi

2021/07/06 08:50

これだとkeyに入力値が与えられていることを無視してて根本的にやりたいこととずれている気がします
退会済みユーザー

退会済みユーザー

2021/07/07 15:40

1年半以上も前の質問なのでよく覚えていませんが、「回答にはなっていないのですが」と断っており、dataの中身を出力するコードを書いただけです。質問者さんはエラーでその出力すら出来ていないため、どういう状態なのか理解できていないのかと思って、せめて動かして内容の出るコードを書きました。 と、ここに書いてもjhgiさんに通知がいかないのがアレなんですが… まあ、この質問が今更これ以上進展することもないとも思うし、続ける意味もないと思いますが...
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問