A 回答 (11件中1~10件)
- 最新から表示
- 回答順に表示
No.11
- 回答日時:
どうしても EntrySet でリニアサーチしたいなら、ばかげているけど
import java.util.HashMap;
public class Test {
public static void main(String[] args) {
var trymap = new HashMap<Integer, String>();
trymap.put(1,"apple");
trymap.put(2,"carrot");
trymap.put(3,"orenge");
trymap.put(4,"potato");
System.out.println("果物は");
for(var b:trymap.entrySet()) {
int key = b.getKey();
String value = b.getValue();
if (key == 1 || key == 3) {
System.out.println("key = " + key + ", value = " + value);
}
}
}
}
多分あなたの勘違いの結果だろうから、人に見せちゃだめだよ。
正気を疑われます。
No.10
- 回答日時:
>trymapにするとエラーはありませんご今度は
>bが使われていないため条件を満たしません
条件?
キーが1、3の「果物」を取り出すという話では
ないのでしょうか?
何のためにEntrySetでループを回すのでしょう?
ハッシュの辞書をリ二ア検索したい?
まだまだ各コ一ドの意味するところを
理解せずにただ並べているだけ
という気がします。
結果としては果物を取り出すのですがbを使わない=entrySet+拡張for文を活用できていないので条件を満たしません。
条件は前途に記載しましたが変数A、拡張for文、entrySetの利用です。
その上で果物を取り出す必要があります。
No.9
- 回答日時:
b>.getValue(valueOf(A))
valueOf メソッドを Test が持ってないから呼べないのは当然、
また EntryのgetValueメソッドは引数を取りません。
>b.get(Integer.valueOf(A))
>b.get(A)
Entryには getメソッドは無いです。
そもそも Entry は辞書に含まれている 個々のキー/値ペアなので
Entryで辞書は検索できませんし無意味です。
>>trymap.get(A) + trymap.get(A+2)
>>break;
>breakを使わず、bとAを使い果物(Mapの値)だけを出力したいです。
ループの外に書きましょう。
もう補足できませんのでこちらで、ループの外にだすとb.getの部分でbを解決できませんと言われ、bをtrymapにするとエラーはありませんご今度はbが使われていないため条件を満たしません。
No.8
- 回答日時:
>System.out.println(map.get(a));
trymap じゃないから なんてオチじゃないよね。
いずれにしても私自身何万回も使ってきた書き方だから
あなたのコードはどっかおかしいはず。
ちょろっと書かず、ソース全てとコンパイルエラーを
正確に示そう。
No.7
- 回答日時:
プログラムの一部分だけを切り出して「どう」って聞かれても困る.
その「例」
System.out.println(b.getValue(Integer.valueOf(A)));
System.out.println(b.getValue(Integer.valueOf(A+2)));
における A や b の型ってなに?
そしてもちろん
「bにはキーにnull、値はそのまま値が順番に格納されている」
なんてことはない. 「順番」がどのような「順番」なのかわからないし, わざわざ「null を格納する」なんて面倒くさいことをする意味もないじゃないか.
あと HashMapEntry ってなんだ.
No.6
- 回答日時:
たぶんあなたの解釈がおかしいんだろうけど, 「テキスト」とやらにどう書いてあるのか正確な文章がわからないので「テキストがおかしい」という可能性も残る. 例えば
「テキストにはentrySetはキーと値のセットを取得と記載されていてそこからgetKeyでキーをgetValueで値を取り出すとなっていた」
というのは「文字通り」に解釈すると間違っている.
とはいえ「文字通り」に解釈するとあなたの書いた
System.out.println(b.getValue(Integer.valueOf(a)));
のようにはならない (ところでなんで同じ文が 2つあるんだろう) ので,
テキストの文章もおかしいしあなたの解釈もおかしい
のかもしれない.
No.5
- 回答日時:
Mapじゃなくて EntrySet の話なんだ。
EntrySet#getValue() は EntrySetのインスタンスが保持している
1組のキー/値 ペアから「値」だけを取り出すだけだから引数はないですよ。
辞書と「キー/値 ペア」の区別をつけましょう。
>System.out.println(map.get(a));
>だとmapで未定義だと言われます。
唐突に出てくる 変数 a が謎です。
No.4
- 回答日時:
>試したところ今度はgetValueがIntegerに適用できないとなります。
>get元のmapのキーはInteger型なのでgetがIntegerに
>対応してないということでしょうか?
やったことは具体的なコードで示そう。getValue ってなに?
こんな風に書いてます?
var map = new java.util.Hashtable<Integer, String>();
map.put(1, "AAA");
System.out.println(map.get(Integer.valueOf(1)));
System.out.println(map.get(1));
としてもおんなじはず。
>例intのAという変数をIntegerのAという変数に変換する
同じ変数が2つの型を持つことはできません。変換されるのは
値の型です。仮引数が Integer型、実引数が int型なら、代入時
intからIntegerの変換が暗黙で行われます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java すみません。助けてください。 javaについての質問です。 integerに変換できない数値をエラー 5 2022/05/18 19:16
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Java Java・配列の問題です。 int 「」nums = new int「5」 ⤴︎ この5の事を言葉で 2 2023/06/21 22:30
- Java Java プログラム public class Main { public static void 3 2023/08/10 23:46
- Visual Basic(VBA) VBA 配列を使ったコードに直していただけますか 4 2023/05/06 15:18
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java Java 配列<選挙> 4 2023/07/31 15:07
- C言語・C++・C# C言語初心者 ポインタについて、お助けください、、 2 2023/03/15 23:50
- Visual Basic(VBA) ①ExcelVBAでカレンダーを作り、別のユザーフォームで日付を入力したいのですがエラーになります。 1 2023/02/17 18:39
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のポインターに関する警告
-
[JAVA]try 内の変数を外で!?
-
JSPやサーブレットでSystem.out...
-
nullcline
-
改行の判定方法
-
java int integer
-
java教えてください。
-
vb6 オブジェクトライブラリは...
-
エクセルマクロ文で、赤文字セ...
-
java シンボルが見つかりません...
-
Collectionからの型変換について
-
全角スペースの判定について
-
javaの文字化けに困っています。
-
ファイル名に変数を使う(Java)
-
「続行するには何かキーを押し...
-
(急募)Java 三択クイズをGUI(...
-
ソケット:書き出しをソケット...
-
JAVAのDouble型の小数点以下の...
-
ループ処理の際、最後だけ","を...
-
ダブルクォーテーションのrepla...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のポインターに関する警告
-
JSPやサーブレットでSystem.out...
-
[JAVA]try 内の変数を外で!?
-
JAVAのDouble型の小数点以下の...
-
「続行するには何かキーを押し...
-
EclipseでJava
-
文字列の引き算
-
JAVAのエラーの意味が分かりま...
-
配列を後ろから数えるには?
-
JAVAで素数判定
-
nullcline
-
曜日の取得方法を教えて下さい!
-
エクセルマクロ文で、赤文字セ...
-
JAVA 文字色変更
-
会員情報登録プログラムの作成...
-
Javaのコマンドライン引数を使...
-
Javaでカレントディレクトリを...
-
LC発振回路-ループ利得
-
java シンボルが見つかりません...
-
改行の判定方法
おすすめ情報
クラス型のIntegerです
回答ありがとうございます。
boxingはひとつの変数だけで簡潔させる方法はあるのでしょうか?
例intのAという変数をIntegerのAという変数に変換する
それともIntegerとして使用したい時だけInteger.valueOf(A)ということでしょうか?
試したところ今度はgetValueがIntegerに適用できないとなります。get元のmapのキーはInteger型なのでgetがIntegerに対応してないということでしょうか?
putはintのままでもエラーなくできています。
int A = 1;
HashMap<Integer, String> trymap = new HashMap<>();
trymap.put(1,"apple");
trymap.put(2,"carrot");
trymap.put(3,"orenge");
trymap.put(4,"potato");
System.out.println("果物は");
for(HashMap.Entry<Integer, String> b:trymap.entrySet()){
System.out.println(b.getValue(Integer.valueOf(a)));
System.out.println(b.getValue(Integer.valueOf(a)));
}
以上だと
getValue(Integer)に適用できないと言われ、教えていただいた
System.out.println(map.get(a));
だとmapで未定義だと言われます。
条件は変数aを使う、entrySetメソッドを使用する、拡張for文を使用して出力する
です。
すいません変数aは変数Aのことです。手入力したので間違ってました。
テキストにはentrySetはキーと値のセットを取得と記載されていてそこからgetKeyでキーをgetValueで値を取り出すとなっていたのですが私の解釈違いなのですね。
//entrySetを使用してMapに含まれる要素の「キー/値」のセットを取得
と記載されています。その後getKeyでキーをgetValueで値を出力するコードが例でのっています。
System.out.println(b.getValue(Integer.valueOf(A)));
System.out.println(b.getValue(Integer.valueOf(A+2)));
ですね。
値だけを取り出すのであれば拡張for文を使う場合はfor(HashMapEntry‹Integer,String› b:trymap.entryset())
だとbにはキーにnull、値はそのまま値が順番に格納されているのでしょうか?
その他の部分は前途の補足に記載しております。(import やpublic static void main等を除く)
HashMap、Mapどちらでもエラーなく、その部分は正常に結果がでていたのでそのままにしていました。
int A = 1;
HashMap<Integer, String> trymap = new HashMap<>();
trymap.put(1,"apple");
trymap.put(2,"carrot");
trymap.put(3,"orenge");
trymap.put(4,"potato");
System.out.println("果物は");
for(HashMap.Entry<Integer, String> b:trymap.entrySet()){
System.out.println(b.getValue(Integer.valueOf(A)));
System.out.println(b.getValue(Integer.valueOf(A+2)));
}
文字制限につきクラスやインポートは省略、最後のprintlnの部分を
b.getValue(valueOf(A))
〉〉メソッドvalueOf(int)は型testで未定義です
b.get(Integer.valueOf(A))
〉〉メソッドget(Integer)は型HashMap.Entry‹Integer,String›で未定義です
b.get(A)
〉〉メソッドget(int)は型HashMap.Entry‹Integer,String›で未定義です
trymap.get(A) + trymap.get(A+2)
break;
〉〉正常に動作及び結果
breakを使わず、bとAを使い果物(Mapの値)だけを出力したいです。
単純に正常に動くコードのtrymapをbに置換すると
メソッドget(int)は型HashMap.Entry‹Integer,String›で未定義です
とでる