C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[13]: java HashMapの問題について


(過去ログ 54 を表示中)

[トピック内 21 記事 (1 - 20 表示)]  << 0 | 1 >>

■30009 / inTopicNo.1)  java HashMapの問題について
  
□投稿者/ kei (3回)-(2008/12/17(Wed) 14:23:56)

分類:[Java] 

HashMapの問題で分からないことがありご質問させて頂きました。エラーを解決しようとしても分からず悩んでいます。
問題は以下の通りです。
●Main
@名前を入力してくださいと出力、入力させる
AMeiboクラスのオブジェクト生成
BMeiboクラスのgetAddressメソッドを呼び出し
 入力された名前の住所を取得
C(@の名前)さんの住所は(Bで取得した住所)
  です。と表示。
DMeiboクラスのgetAgeメソッドを呼び出し
 入力された名前の年齢を取得
E(@の名前)さんの年齢は(Bで取得した年齢)
  です。と表示。
●Meiboクラス
◇フィールド
HashMapのフィールド変数address宣言(private)
HashMapのフィールド変数age宣言(private)
◇コンストラクタ
以下をフィールドaddressのHashMapへ設定
(Key,Value)
ogawa,北海道
katou,東京
itou,沖縄
paul,アメリカ
以下をフィールドageのHashMapへ設定
(Key,Value)
ogawa,15
katou,20
itou,25
paul,30
◇getAddress(引数String)
@引数として名前を取得
Aフィールドaddressから引数で受け取った名前の値を文字列として取得
BAで取得した値を戻り値とする。ただし値が
 nullだった場合は未設定という文字列を
 戻り値とする。
◇getAge(引数String)
@引数として名前を取得
Aフィールドageから引数で受け取った名前の値を
文字列として取得
BAで取得した値を戻り値とする。ただし値が
 nullだった場合は未設定という文字列を
 戻り値とする。
----------------------------------------------
このような問題です。途中まで書いたソースを
書き込ませて頂きますので、ご指導のほどよろしく
お願い致します。

import java.io.*;
import java.util.*;

class MeiboMain{
public static void main(String args[])throws IOException{
System.out.println("名前を入力して下さい。");

BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));

String name = br.readLine();
Meibo meibo = new Meibo();

meibo.getAddress(String address);
System.out.println(name + "さんの住所は" + address + "です。");

meibo.getAge(String age);
System.out.println(name + "さんの年齢は" + age + "歳です。");


}
}


import java.io.*;
import java.util.*;

class Meibo{
HashMap map = new HashMap();

private HashMap address;
private HashMap age;

public Meibo{
address.put(ogawa,"北海道");
address.put(katou,"東京");
address.put(itou,"沖縄");
address.put(paul,"アメリカ");

age.put(ogawa,"15");
age.put(katou,"20");
age.put(itou,"25");
age.put(paul,"30");
}
public String getAddress(String address){
HashMap address = (HashMap)map.get(Meibo);
return address;
if(address.equals(null){
System.out.println("未設定");
return null;
}
}

public String getAge(String age){
HashMap age = (HashMap)map.get(Meibo);
return age;
if(age.equals(null){
System.out.println("未設定");
return null;
}
}
}
----------------------------------------------
実行結果
C:\java>java MeiboMain.java
名前を入力してください。
ogawa
ogawaさんの住所は北海道です。
ogawaさんの年齢は15歳です。

C:\java>
引用返信 編集キー/
■30010 / inTopicNo.2)  Re[1]: java HashMapの問題について
□投稿者/ .SHO (434回)-(2008/12/17(Wed) 14:32:25)
No30009 (kei さん) に返信
> 実行結果
> C:\java>java MeiboMain.java
> 名前を入力してください。
> ogawa
> ogawaさんの住所は北海道です。
> ogawaさんの年齢は15歳です。

正常に動いてますけど…
引用返信 編集キー/
■30011 / inTopicNo.3)  Re[1]: java HashMapの問題について
□投稿者/ επιστημη (1466回)-(2008/12/17(Wed) 14:33:59)
επιστημη さんの Web サイト
2008/12/17(Wed) 14:52:15 編集(投稿者)

> このような問題です。途中まで書いたソースを
> 書き込ませて頂きますので、ご指導のほどよろしく
> お願い致します。

で、どんな指導をお望みですか?

コードをざっくり読みましたが "デタラメ" もいいとこ。
基本的なとこから"まるでできていない"と判断します。

教本/教師に従ってきちんと勉強してますか?

引用返信 編集キー/
■30013 / inTopicNo.4)  Re[2]: java HashMapの問題について
□投稿者/ επιστημη (1467回)-(2008/12/17(Wed) 14:49:51)
επιστημη さんの Web サイト
No30010 (.SHO さん) に返信
> 正常に動いてますけど…

こんな結果を"期待しています"ってこっちゃないすかね。
呈示されたコードはコンパイルエラーの山で実行できるわきゃねーから。

引用返信 編集キー/
■30014 / inTopicNo.5)  Re[2]: java HashMapの問題について
□投稿者/ すがり (13回)-(2008/12/17(Wed) 14:51:54)
突っ込みどころ満載すぎですね・・・

()の閉じ忘れ、宣言していない変数やら・・・

1つ1つエラー内容を修正してみてください。
引用返信 編集キー/
■30020 / inTopicNo.6)  Re[3]: java HashMapの問題について
□投稿者/ .SHO (435回)-(2008/12/17(Wed) 15:07:28)
No30013 (επιστημη さん) に返信

> こんな結果を"期待しています"ってこっちゃないすかね。
> 呈示されたコードはコンパイルエラーの山で実行できるわきゃねーから。

そうなんだ…
んもうー、それだったらいっそのこと、コンパイルエラー丸写しで
これなに?って聞いてくれた方がよっぽどいい。

もっとも、それでも自分で勉強してって突っ込むだけだけど。。。
引用返信 編集キー/
■30021 / inTopicNo.7)  Re[3]: java HashMapの問題について
□投稿者/ .SHO (436回)-(2008/12/17(Wed) 15:09:38)
これって、ここまでやったんだけど、あとめんどくさいから
誰か仕上げてってことなのか?
引用返信 編集キー/
■30023 / inTopicNo.8)  Re[4]: java HashMapの問題について
□投稿者/ επιστημη (1468回)-(2008/12/17(Wed) 15:15:52)
επιστημη さんの Web サイト
No30021 (.SHO さん) に返信
> これって、ここまでやったんだけど、あとめんどくさいから
> 誰か仕上げてってことなのか?

さて...

ちょいちょいといぢくって動くようになったけど、
敢えて晒さないのがスレ主のためか?
どんな"ご指導のほどよろしくお願い致し"てるか、なんだが。

引用返信 編集キー/
■30028 / inTopicNo.9)  Re[5]: java HashMapの問題について
□投稿者/ kei (4回)-(2008/12/17(Wed) 15:31:11)
No30021 (.SHO さん) に返信
>>これって、ここまでやったんだけど、あとめんどくさいから
>>誰か仕上げてってことなのか?

すみません・・・。決してそういう訳ではございません。
質問の仕方が悪くて大変申し訳ございませんでした。。。。下記に記述します。

>教本/教師に従ってきちんと勉強してますか?
わたしは独学で入門書通り勉強してはいるのですがまだまだ勉強が足りませんでした。すみません。

>んもうー、それだったらいっそのこと、コンパイルエラー丸写しで
これなに?って聞いてくれた方がよっぽどいい。
エラーと言っても、少し変える度にたくさん増えたりするので、記述は控えさせて頂いたのです。申し訳ございません。


一番分からないことは、コンストラクタ内でのHashMapの記述の仕方です。
HashMapそのものの記述の仕方は理解しているのですが、サブクラスのコンストラクタ内で記述した場合
どのようにしてMainクラスで呼び出すのかが分かりませんでした。

意味不明な質問で皆様を混乱させてしまい大変申し訳ございませんでした。心より反省しております。
2,3日かなり考えたつもりでしたが、再度勉強し直したいと思います。
本当に申し訳ございませんでした。



引用返信 編集キー/
■30031 / inTopicNo.10)  Re[6]: java HashMapの問題について
□投稿者/ επιστημη (1469回)-(2008/12/17(Wed) 15:35:39)
επιστημη さんの Web サイト
2008/12/17(Wed) 15:37:37 編集(投稿者)
> 一番分からないことは、コンストラクタ内でのHashMapの記述の仕方です。
> HashMapそのものの記述の仕方は理解しているのですが、

いぃや、わかってないね。

/* addressだけ実装 */

class Meibo{
  private HashMap address = new HashMap();

  public Meibo() {
    address.put("ogawa","北海道");
    address.put("katou","東京");
    address.put("itou", "沖縄");
    address.put("paul", "アメリカ");
  }

  public String getAddress(String key) {
    String result = (String)address.get(key);
    return ( result == null ) ? "未設定" : result;
  }

}

/* 使い方 */
    Meibo meibo = new Meibo();
    String name = "ogawa";
    String address = meibo.getAddress(name);
    System.out.println(name + "さんの住所は" + address + "です。");

引用返信 編集キー/
■30032 / inTopicNo.11)  Re[6]: java HashMapの問題について
□投稿者/ .SHO (437回)-(2008/12/17(Wed) 15:41:08)
No30028 (kei さん) に返信

> エラーと言っても、少し変える度にたくさん増えたりするので

逆の見方をすれば、少し変えればたくさん減るってことですね。
まずは、コンパイルエラーはなくしましょう。
スタートラインに立ってないです。
引用返信 編集キー/
■30056 / inTopicNo.12)  Re[7]: java HashMapの問題について
□投稿者/ い (5回)-(2008/12/17(Wed) 17:02:40)
EclipseとかのIDEを使いましょう。
コード書いている傍から、すぐにエラーが出るので構文ミスは減らせます。
その上で、再度質問されてみてはいかがでしょうか。

まずは、最小のコードから、やっていくことです。
いきなり大きいコードを書くと、わけが分からなくなります。
引用返信 編集キー/
■30057 / inTopicNo.13)  Re[8]: java HashMapの問題について
□投稿者/ επιστημη (1470回)-(2008/12/17(Wed) 17:11:57)
επιστημη さんの Web サイト
2008/12/17(Wed) 19:23:21 編集(投稿者)

> EclipseとかのIDEを使いましょう。
> コード書いている傍から、すぐにエラーが出るので構文ミスは減らせます。

僕は真逆 ^^;
ビギナは「テキストエディタとコマンドライン(javac)で"叱られながら学べ"」です。

引用返信 編集キー/
■30071 / inTopicNo.14)  Re[9]: java HashMapの問題について
□投稿者/ 凪瀬 (88回)-(2008/12/17(Wed) 18:01:25)
No30057 (επιστημη さん) に返信
>>EclipseとかのIDEを使いましょう。
>>コード書いている傍から、すぐにエラーが出るので構文ミスは減らせます。
>
> 僕は間逆 ^^;
> ビギナは「テキストエディタとコマンドライン(javac)で"叱られながら学べ"」です。

叱ってくれる教師がいる環境下ならいいんですが、独学の場合はまずはIDEでも使ってとにかく動かしてみることかなぁ。
独学で動かすにこぎつけられないと心が折れますから。

コンパイルエラーが叱ってはくれるけど、その意味を理解できるようになるには修業が要りますし。
IDEを使わないことで増える苦労がどれだけ役に立つかというと、入門段階では疑問。
むしろ脳みそを圧迫するだけかもしれませんね。

ほどよくプログラムがわかってきたところで忘れずに学習すればいいかと。忘れられがちですがw
引用返信 編集キー/
■30076 / inTopicNo.15)  Re[10]: java HashMapの問題について
□投稿者/ すがり (16回)-(2008/12/17(Wed) 19:40:56)
おかしなところにコメントしてみました。
多分正常なコードは10%くらいで残り90%くらいがおかしいので修正必要です。

import java.io.*;
import java.util.*;

class MeiboMain{
	public static void main(String args[])throws IOException{
	System.out.println("名前を入力して下さい。");

	BufferedReader br =
	new BufferedReader(new InputStreamReader(System.in));

	String name = br.readLine();
	Meibo meibo = new Meibo();

	meibo.getAddress(String address); // ←戻り値を受け止めるものがない
	System.out.println(name + "さんの住所は" + address + "です。"); // ←addressという変数が存在しない

	meibo.getAge(String age); // ←戻り値を受け止めるものがない
	System.out.println(name + "さんの年齢は" + age + "歳です。"); // ←ageという変数が存在しない


	}
}


import java.io.*;
import java.util.*;

class Meibo{
	HashMap map = new HashMap(); //←getAddress,getAgeで使っているけどコンストラクタ内で値をセットしていない
//(そもそもこの変数を使う時点で間違えと思われる)

	private HashMap address; //←コンストラクタ内で値セットするだけでその後参照されてない(事実上使われていないに等しい)
	private HashMap age; //←コンストラクタ内で値セットするだけでその後参照されてない(事実上使われていないに等しい)

	public Meibo{
		address.put(ogawa,"北海道"); //←new する前にputしているので実行時100%エラーになる、変数ogawaは存在しない
// おそらく"ogawa"とするのが正しい
		address.put(katou,"東京"); //←new する前にputしているので実行時100%エラーになる、変数katouは存在しない
// おそらく"katou"とするのが正しい
		address.put(itou,"沖縄"); //←new する前にputしているので実行時100%エラーになる、変数itouは存在しない
// おそらく"itou"とするのが正しい
		address.put(paul,"アメリカ"); //←new する前にputしているので実行時100%エラーになる、変数paulは存在しない
// おそらく"paul"とするのが正しい

		age.put(ogawa,"15"); //←new する前にputしているので実行時100%エラーになる、変数ogawaは存在しない
// おそらく"ogawa"とするのが正しい
		age.put(katou,"20"); //←new する前にputしているので実行時100%エラーになる、変数katouは存在しない
// おそらく"katou"とするのが正しい
		age.put(itou,"25"); //←new する前にputしているので実行時100%エラーになる、変数itouは存在しない
// おそらく"itou"とするのが正しい
		age.put(paul,"30"); //←new する前にputしているので実行時100%エラーになる、変数paulは存在しない
// おそらく"paul"とするのが正しい
	}
	public String getAddress(String address){ //←addressが使われていない
		HashMap address = (HashMap)map.get(Meibo); //←hashmapからStringとしてgetしなければならないのにHashMapで
//取得しようとしている、mapには値がセットされていない、Meiboという変数が存在しない(おそらくaddressが正しい)
		return address; //←戻り値がStringなのにHashMapを返している
		if(address.equals(null){ //←直前でreturnしているので実行されない、コンパイルエラー、そもそもequals(null)
//を実行した時点で実行時エラーが出ると思われる
			System.out.println("未設定"); //←"未設定"を返していないので仮に動いたとしてもコンソール上には 
//未設定(改行)name + "さんの住所はnullです。"と出力される
			return null;
		}
	}

// getAddressの問題点と同じ
	public String getAge(String age){
		HashMap age = (HashMap)map.get(Meibo);
		return age;
		if(age.equals(null){
			System.out.println("未設定");
			return null;
		}
	}
}

引用返信 編集キー/
■30087 / inTopicNo.16)  Re[9]: java HashMapの問題について
□投稿者/ も (62回)-(2008/12/18(Thu) 03:51:17)
No30057 (επιστημη さん) に返信
> 2008/12/17(Wed) 19:23:21 編集(投稿者)
>
>>EclipseとかのIDEを使いましょう。
>>コード書いている傍から、すぐにエラーが出るので構文ミスは減らせます。
>
> 僕は真逆 ^^;
> ビギナは「テキストエディタとコマンドライン(javac)で"叱られながら学べ"」です。
コマンドラインでしかられるよりコードエディタでしかられるほうが個人授業っぽくて好きな自分
引用返信 編集キー/
■30105 / inTopicNo.17)  Re[10]: java HashMapの問題について
□投稿者/ επιστημη (1472回)-(2008/12/18(Thu) 12:00:30)
επιστημη さんの Web サイト
そっかー... エディタとコマンドラインじゃナウくないかー
環境が余計なことは何一つせず、純粋に
「俺が"やれ"と言ったこと」だけ
をやってくれるのがお気に入りなんですけどねー ^^;

引用返信 編集キー/
■30107 / inTopicNo.18)  Re[11]: java HashMapの問題について
□投稿者/ .SHO (445回)-(2008/12/18(Thu) 12:24:39)
自分はエディタ+コマンドライン派です。
生産性は明らかにこの方が高いです。

ただ、C#の勉強始めて、一ヵ月半ぐらい過ぎましたが
確かに最初はつまずきます。
何かやろうとして、本を調べてもウェブで検索しても
IDEのココを設定して…とIDEの話ばかりで
最初はうんざりしますね。
引用返信 編集キー/
■30194 / inTopicNo.19)  Re[12]: java HashMapの問題について
□投稿者/ たくボン (116回)-(2008/12/18(Thu) 22:49:42)
2008/12/18(Thu) 23:02:21 編集(投稿者)
2008/12/18(Thu) 22:52:34 編集(投稿者)

No30107 (.SHO さん) に返信
> 自分はエディタ+コマンドライン派です。
> 生産性は明らかにこの方が高いです。

本当に?何で何を作るかにもよるけど。
エディタの機能がショボかった10年くらい前はそんな感じだったけど、今は明らかにIDEの方が生産性あると思う。

まだ会社なのでうろ覚えだけど、確か1995年に出版されたオブジェクト開発の落とし穴(ISBN-10: 4931356257)この本に、
「将来は関数やメソッドの候補が一覧から選択できるようになる」
「将来はクラスや変数、予約語が色付けされソースが見やすくなる」
とか書いてて、当時は「本当にそんな時代が来るのか?」って思ってたけど現在はなってます。

エディタ+コマンドラインでどれくらいの規模を開発しているかわからないですが、(確か1億超えるプロジェクトも開発されているんですよね?)、生産性という面で言えばIDEの方に分があると思いますよ:-P

簡単なサンプルならいい勝負かもしれませんが、MAKEファイルや自動で生成されるスケルトン、デバッグ時のdumpとか当然その辺も考慮してエディタの方が生産性が高いって言われているんですよね?

もしよろしければ、エディタ+コマンドラインでIDEより生産性を向上させる方法を教えてください。

#俺ももうナゥくないな。

追加:
でも、エディタ+コマンドラインを否定する訳ではない。初心者はこれで一通り悩むのがいいと思う。そうすれば自然と実力がつくから。

引用返信 編集キー/
■30200 / inTopicNo.20)  Re[13]: java HashMapの問題について
 
□投稿者/ aetos (53回)-(2008/12/19(Fri) 01:01:57)
エディタ派かIDE派かは別のスレ立ててやろうよ。ね。
引用返信 編集キー/

次の20件>
トピック内ページ移動 / << 0 | 1 >>

管理者用

- Child Tree -