Java入門・初心者質問スレ Part.11

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (アウアウウー Sa07-jGB0)
垢版 |
2021/06/29(火) 11:42:34.74ID:iGYT4fi4a
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512

Java初心者のためのスレッドです。

※前スレ
Java入門・初心者質問スレ Part.10
https://mevius.5ch.net/test/read.cgi/tech/1585721355/
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
758デフォルトの名無しさん (アウアウウー Sac7-8jyA)
垢版 |
2022/05/24(火) 20:20:06.43ID:DFiEOcxBa
>>756
>>757
お二人ともわざわざコメントくださってありがとうございます。正直エラーの見方全くわかってなくて…。お二人のおかげで勉強になりました。>>756
2022/05/24(火) 20:24:11.01ID:CApFE9v50
プログラマに向いてないからやめちまえよ
仕事なんていくらでもあるぞ?
760デフォルトの名無しさん (ワッチョイ 275f-goY3)
垢版 |
2022/05/24(火) 20:26:47.52ID:a/LlQfSO0
荒らしかと思った
761デフォルトの名無しさん (ワッチョイ 275f-goY3)
垢版 |
2022/05/24(火) 20:27:24.40ID:a/LlQfSO0
メッセージを読まないやつってなんなんだろうな
2022/05/24(火) 20:49:18.78ID:1Vdq0D0oa
suitabeの時点でわからないから大量のアブラカタブラの一部と認識してシャットアウトするんじゃね
全部貼る生真面目さはある意味でプログラマに向いているかもしれない
763デフォルトの名無しさん (ワッチョイ 3e02-XROD)
垢版 |
2022/05/24(火) 21:33:22.74ID:EO1aEbC+0
英語でずらずら書かれると目が滑るのは分かる
2022/05/24(火) 21:48:31.90ID:p95++fvf0
大体のエラーは1行目を見れば十分なんだけどな
765デフォルトの名無しさん (ワッチョイ 5b63-CZg7)
垢版 |
2022/05/24(火) 22:39:15.25ID:7U+7Tuog0
依存性注入(DI)の使い方やメリットが
イマイチ理解できない
2022/05/25(水) 08:09:48.97ID:Y26hlNPT0
メソッドだけインスタンス化する方法あったよな?どうやるんだっけ
767デフォルトの名無しさん (ワッチョイ 9aad-qHb3)
垢版 |
2022/05/25(水) 09:23:11.43ID:o2j32ySo0
言ってる意味がわからん
2022/05/25(水) 10:10:32.46ID:h6Px9Rp10
>>765
メソッドには呼び出し側と呼び出され側があるけど
上位のメソッドから中間のメソッドを飛び越えて呼び出すと
真ん中のメソッドのテストをするときに下を書かなくていい
という意味らしい

それから一番上のメソッドだけを見るとどのメソッドが
使われているのか全部わかるので
見通しがよくなるんだって
2022/05/25(水) 10:35:28.00ID:Y26hlNPT0
Aクラス.testメソッド

A a = new A.test;みたいにしたい
2022/05/25(水) 10:46:28.28ID:w4VioXaG0
メソッドチェーンがしたいということなのかなんなのか
771デフォルトの名無しさん (ブーイモ MMba-+hKh)
垢版 |
2022/05/25(水) 10:48:48.28ID:302+byVKM
>>769
A.test をstatic にすればできる
ファクトリーで使われる
772デフォルトの名無しさん (ブーイモ MMba-+hKh)
垢版 |
2022/05/25(水) 10:51:39.19ID:302+byVKM
>>765
依存性注入(DI)はデータベースを想像すると分かりやすい
アプリはJDBCインターフェースに沿ってコードを書けばいい
実行時クラス(JDBCドライバー)は設定によって Oracle だったり SQL Server だったり差し替え可能になる
2022/05/25(水) 11:14:43.52ID:VrHeeTxq0
変数Aと変数Bを交換したいのですが
A swap B みたいな簡単な命令文はないでしょうか?

int Z=A;
A=B;
B=Z;

みたいなのは長いので嫌です
簡単に10文字くらいでできるやつありませんか?
2022/05/25(水) 11:28:34.00ID:nBArTk/cM
>>769
Predicate<T>とかFunction<T, R>とか
method reference(A::test)で検索してみて
2022/05/25(水) 12:48:55.66ID:l0paCdB/M
>>765
仰々しい名前がついてるけどパターンとしてのDIは
依存してる物(Dependency)を自分で生成せずに外部から渡す(Injection)ように作るというだけのこと

メリットはオブジェクトの生成とオブジェクトの使用という2つの役割を分けることでメンテナンスしやすいコードになる

利用側のコードをインターフェースみたいな抽象のみに依存するようにしておけば利用側の変更を伴わずに依存オブジェクトを異なる具体型に変更できる

ライブラリやフレームワークとしてのDI(DIコンテナ)は生成と注入をコンフィグやアノテーションベースで便利にやってくれるツール
2022/05/26(木) 09:58:11.66ID:SmauVUVkr
JDBCのたとえだと、urlのプロトコル部分でmysqlとか指定しているので、どちらかというとServiceLocatorな感。
777デフォルトの名無しさん (ワッチョイ 979c-+hKh)
垢版 |
2022/05/26(木) 10:55:53.52ID:EFS7Yvcl0
接続文字列(URL)も外部化されるのが普通ですよ
2022/05/26(木) 11:13:52.53ID:yTTmq901M
外部化することの意味がどれだけあるのかって思うときは多々ある
779デフォルトの名無しさん (ワッチョイ 979c-+hKh)
垢版 |
2022/05/26(木) 11:18:07.61ID:EFS7Yvcl0
JNDI便利だぞー
2022/05/26(木) 11:28:44.18ID:h2W/o/U9a
ユニットテストをまともにやれてないならDIの効果は限定的だろうな
781デフォルトの名無しさん (アウウィフ FFc7-goY3)
垢版 |
2022/05/26(木) 19:39:15.14ID:HcWlAHj5F
悪いJavaプログラマがわいてきた
2022/05/27(金) 13:37:04.29ID:fI0Liq3R0
A[100][100]の全てにBを代入したいのですが
A[][] ALL B みたいな簡単な命令文はないでしょうか?

for(int a=0;a<100;a++){
for(int b=0;b<100;b++){
A[a][b]=B;
}
}

みたいなのは長いので嫌です
簡単に10文字くらいでできるやつありませんか?
783デフォルトの名無しさん (ワッチョイ 9aad-SjAR)
垢版 |
2022/05/27(金) 16:51:46.30ID:Dxs4BKy40
>>782
java.util.Arrays クラスを見ると fill() が沢山あるので、これを利用すると楽。
2022/05/27(金) 17:54:48.19ID:Pva6dleK0
for(var x: A) Arrays.setAll(x, __ -> B);
2022/05/27(金) 18:58:36.97ID:cXi3VOa2a
fillのほうが早そうだな
786デフォルトの名無しさん (ワッチョイ 979c-+hKh)
垢版 |
2022/05/27(金) 19:58:18.78ID:9VIWhVy20
JavaでもSIMD使えるようになるらしいね
それ使えないかな?
2022/05/28(土) 02:58:47.26ID:m6AI4k4Ja
SIMD引っ張り出すようなお題かな?
簡単に書きたいというのがそもそもの要件で、ほぼ同じ簡潔さで書けるなら高速かつ合理的な方のメソッドを採用したほうがいいんじゃねという話じゃないの
788デフォルトの名無しさん (ワッチョイ b95f-GMjm)
垢版 |
2022/05/28(土) 22:37:32.56ID:I7eOXSK00
>>782 はそもそもネタなのと、ロジックが隠蔽されていればいいだけなので、反応しないこと。
789デフォルトの名無しさん (ワッチョイ 93bd-eOmp)
垢版 |
2022/05/29(日) 16:21:29.51ID:9pvhLD6G0
javaブロンズの勉強のために、紫本の案内通りにJDKをダウンロードし、 Windowsコマンドプロンプトで確認したところ正常にインストールできました。
それで、参考書はもうそのまま“メモ帳などでjavaのコマンドを書いてコンパイルしましょう”となってますが、JDKインストール後の具体的な実行環境がわかりません。
仮にメモ帳に実際のコマンドを書いて、それをどのようにコンパイルすれば良いでしょうか?
790デフォルトの名無しさん (ワッチョイ 4b02-ddm6)
垢版 |
2022/05/29(日) 20:48:42.29ID:K5OprcrC0
javaのコンパイルコマンドを使えばいいんでないの
791デフォルトの名無しさん (ワッチョイ 915f-LhUI)
垢版 |
2022/05/29(日) 21:26:07.69ID:wdRXATdO0
javac 使う
2022/05/29(日) 22:42:03.25ID:JgxM3r1ba
書いたコマンドをメモ帳あたりで保存しておいて、コマンドプロンプトに貼り付けるときに再利用してってところだと思う
batにしてもいい
VSCodeとかEclipseとか使うともっと楽
793デフォルトの名無しさん (ワッチョイ b95f-GMjm)
垢版 |
2022/05/29(日) 22:54:53.65ID:QmWhtWPG0
つまらないネタだな
2022/05/30(月) 20:15:42.11ID:egFVVTNIr
>>793
つまらんレスだな。
795デフォルトの名無しさん (ワッチョイ b95f-GMjm)
垢版 |
2022/05/31(火) 10:58:20.52ID:Q7HTN5en0
>>789
広島に行って、街のひとに聞く。
2022/05/31(火) 11:34:00.66ID:nthi7rsTa
>>795
ぷよぷよを作ったコンパイルじゃねーよ!
もう埼玉に移転してるし倒産してんだよ!
797デフォルトの名無しさん (ワッチョイ b95f-vMv+)
垢版 |
2022/05/31(火) 19:49:30.94ID:Q7HTN5en0
>>796
脳ミソをコネコネしてみる
798おれいいひと (ワッチョイ b95f-G2Bm)
垢版 |
2022/06/01(水) 11:29:26.94ID:C6S6DXn50
>>789
C(OS)ディスクにJAVAフォルダを作って、そこにSDKフォルダをぶち込む。
さらにメモ帳で作ったJavaをぶち込んで、拡張子を.txtから.javaに変更する。
続く。
2022/06/01(水) 19:35:04.03ID:SynhWSfY0
>>765
どちらかと言えば単体テストとかのためのイメージ
クラスAがクラスBが扱う場合で、クラスAをテストしたい場合はBを用意するのが面倒
だからDIとポリモーフィズムを利用してBに関係なくテストできるとか
800デフォルトの名無しさん (ワッチョイ b95f-vMv+)
垢版 |
2022/06/01(水) 20:18:55.26ID:vYinN+/U0
>>798
本を読んでいるのにわからないはずがないだろ
2022/06/02(木) 21:43:22.94ID:036rUGnq0
セマフォアで悩んでいます。

Proc1とProc2で排他制御やってますが、Proc2実行時にtrueにしている変数aがProc1でtrueが見えているんです。

Proc2をブレークして抜けるまではProc1の処理は待たされていることは確認できてます。

Proc2がsemaphore.release()して、Proc1のブロック解除で何故aがtrueなのか?

Semaphoreの第2パラメーターの意味が理解出来ません。trueでもfalseでも結果はおなじです。

--Proc1--
semaphore.acquire();
if (a) {
/* ここに来ちゃだめだが、何故か来る? */
}
semaphore.release();

--Proc2--
semaphore.acquire();
a=true;
/* 処理 */
a=false;
semaphore.release();

--変数定義--
public volatile Boolean a=false;

--初期化--
public semaphore = new Semaphore(1,true);
802デフォルトの名無しさん (ワッチョイ d99c-215G)
垢版 |
2022/06/02(木) 22:00:52.38ID:gupSpSlh0
2つ目のパラメーターは公平性の指定です
Proc2実行中に、Proc1、Proc3の順に呼ばれて待機したとします。
公平性 true の場合、Proc2のrelease後に先に順番待ちをしていたProc1のacquireが復帰することが保証されます。
公平性 false の場合、Proc1、Proc3の待機順は考慮されません。つまり、後から待機したProc3のacquireが先に復帰する可能性もあります。

Proc2とProc1だけ(待機するスレッドが1つだけ)なら公平性はtrueでもfalseでも影響ありません
2022/06/02(木) 22:11:27.04ID:036rUGnq0
>>802
ありがとうございます。
公平性、理解出来ました。
2022/06/03(金) 00:35:35.66ID:tNZ+/UeiM
>>801
ものすごく適当なエスパーで、そんなことしてない、って言われそうだけど、
Proc1の if(a) の a は正しくフィールドの a ?
void hoge(Boolean a) {
 ...
 if (a) {
 ...
}
みたいなことにはなってない?
あとは基本的だけど Proc2で a = false せずに semaphone.release() するルートがないかどうか

さらに重箱だけどフィールド a は Boolean じゃなくて boolean にした方がよいかと(typo でなければ
2022/06/03(金) 05:10:01.53ID:QOionYJp0
>>804
レスありがとうございます。
変数aは引数ではなく外部変数です。
Proc1は0.1秒周期で呼ばれていて、デバッガーでProc2のセマフォア内でブレークさせるとProc1の処理は停止して、セマフォアから出るとProc1か動き、たまにif文の中に入りブレークポイントを仕掛けているので捕まります。
Booleanじゃなくてboolean にするとはどういうことでしょうか?
これから調べますが、よろしくお願いします。
環境はandroidです。
2022/06/03(金) 05:37:48.87ID:QOionYJp0
>>805
ちょっと調べました。
Booleanはクラスで参照型なんですね。
プリミティブな変数だと思ってました。
ガーンです。エディタの支援機能のまま書いてしまいました。他も確認しなくっちゃ。
これが原因になるのかわかりませんがやっつみます。
2022/06/03(金) 07:17:43.66ID:QOionYJp0
>>806
結果変わらずでした。
書き忘れて申し訳ないですが、if(a)
2022/06/03(金) 07:20:04.55ID:QOionYJp0
のthen節でブレークした時、aの値はfalseなんです。
then節内で変数aを書き換えてはいません。
2022/06/03(金) 07:44:57.23ID:QOionYJp0
連投ですみません。
ifのthen節内にブレークポイントを設定して、trueだったのでthen節でブレークしてからaがfalseに変化した感じですが、おかしいですよね。
Proc2のreleaseの前の行でa=falseしています。この部分はfinally節で記述してます。
a=trueはacquireの次の行です。
2022/06/03(金) 07:58:13.36ID:QOionYJp0
>>809
ごめんなさい。
全然関係ない場所にreleaseがありました。
セマフォアでガードしてると思ったが、間抜けでした。
トホホです。
811デフォルトの名無しさん (ワッチョイ aa9d-1k0/)
垢版 |
2022/06/09(木) 14:51:12.22ID:YtgJB3yG0
java業務についている方に質問です。

連想配列の多次元配列は使いますでしょうか?

こんな感じのデータです。

{1={名前=田中, 国語=33, 数学=10},
2={名前=高橋, 国語=63, 数学=62}}
812デフォルトの名無しさん (ワッチョイ a99c-F19Y)
垢版 |
2022/06/09(木) 15:15:22.22ID:+51WxvLP0
>>811
Mapを入れ子にすることはある

けど、その例なら {名前=田中, 国語=33, 数学=10} の部分は Map ではなく成績クラスのインスタンスにするかな?
813デフォルトの名無しさん (ワッチョイ aa9d-1k0/)
垢版 |
2022/06/09(木) 15:48:31.50ID:YtgJB3yG0
>>812さん

ご回答ありがとうございます。

javaをつかってjqueryみたいに

let results = [
{'name' : '田中', 'japanese' : 83},
{'name' : '渡部', 'japanese' : 62},
{'name' : '品川', 'japanese' : 23},
{'name' : '滝谷', 'japanese' : 93},
{'name' : '川原田','japanese' : 55},
{'name' : '一色', 'japanese' : 27},
];

$.each(results, function() {
console.log(this.name);
})

結果
田中
渡部
品川
滝谷
川原田
一色

みたいにやりたいのですが、教えていただけますでしょうか?
814デフォルトの名無しさん (ワッチョイ a99c-F19Y)
垢版 |
2022/06/09(木) 16:24:12.53ID:+51WxvLP0
>>813
Mapじゃなくて配列になってるじゃん
Map内の全要素に処理をするときは for + .entrySet() または .forEach(...)
2022/06/09(木) 17:12:39.49ID:EdGnGayn0
単に配列にしたいデータのクラスを作ってそのクラスを配列にすれば良いだけでは?
816デフォルトの名無しさん (ワッチョイ aa9d-1k0/)
垢版 |
2022/06/09(木) 17:20:48.04ID:YtgJB3yG0
>>815

ありがとうございます。

ソースコードをいただけますでしょうか?
2022/06/09(木) 17:36:35.25ID:jIBMFnjv0
こんな感じか

List<List<String>> results = new ArrayList<>();
results.add(new ArrayList<String>(Arrays.asList("田中", "japanese", "83")));
results.add(new ArrayList<String>(Arrays.asList("渡部", "japanese", "62")));
results.stream().map(r -> r.get(0)).forEach(System.out::println);
818デフォルトの名無しさん (ワッチョイ aa9d-1k0/)
垢版 |
2022/06/09(木) 17:45:12.74ID:YtgJB3yG0
>>817

ありがとうございます。参考にさせていただきます。

多次元の連想配列、以下の配列を作るソースコードもいただけないでしょうか?

{
{名前=田中, 国語=33, 数学=10},
{名前=高橋, 国語=63, 数学=62}
}
2022/06/09(木) 17:52:34.99ID:z+KlshmLM
宿題スレじゃないよ?
820デフォルトの名無しさん (ワッチョイ aa9d-1k0/)
垢版 |
2022/06/09(木) 17:55:52.29ID:YtgJB3yG0
>>819

すいません。いくら自分で調べてわからず恐縮ですが、

何卒、お力添えお願いできますでしょうか?
2022/06/09(木) 20:14:26.25ID:mPZZjR1p0
>>818
>>820
if(name.equals("田中")){kokugo=33;suugaku=10;}
if(name.equals("高橋")){kokugo=63;suugaku=62;}
2022/06/09(木) 20:38:15.41ID:+HhlT4hpr
>>818
(vector (defparameter *田中* '((国語 (33))(数学 (10))))
          (defparameter *高橋* '((国語 (63))(数学 (62)))))
823デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/09(木) 21:28:28.98ID:ScPjbrJir
>>821
>>822

大変恐縮ですが、コピペでパイザでそのまま使える
ソースコードをいただけないでしょうか?
2022/06/09(木) 21:34:58.74ID:3mF2bNUyr
自分で考えないの?考えるって事がむずかしいの?
825デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/09(木) 21:42:20.34ID:ScPjbrJir
>>824

おっしゃる事はごもっともでございます。

大変恐縮ながら、私の能力は高くないのです。

自分で考えてもこれで精一杯でございます。

何卒パイザでそのままコピペで使えるソースコードを

いただけないでしょうか?
2022/06/10(金) 00:02:10.09ID:MjLzdw6I0
>>813
Ruby では、

ary = [
{ 'name': '田中', 'japanese': 83 },
{ 'name': '渡部', 'japanese': 62 }
]

ary.each { |row| puts row[ :name ] }

出力
田中
渡部

Effective Ruby にも書いてあるデザインパターンでは、
本当は辞書ではなくて、そのレコードのクラスを作って、インスタンス化する

辞書では、row[ :name ] みたいに、内部的な詳細であるキーを使っているけど、
クラスなら、row.name みたいに、
メソッド・プロパティーでアクセスできるので、詳細が漏れ出さない
827デフォルトの名無しさん (ワッチョイ caad-+66E)
垢版 |
2022/06/10(金) 01:24:26.50ID:PaGeb8RQ0
このスレは何の言語のスレなのか?
2022/06/10(金) 02:29:14.99ID:SVFBay0i0
こういう無能な教えて君が現場でもたまにいるけどホント怖いわ
こんなのしょうもないことを一生懸命ググって’答え’をひたすら探したり何回も教えてって言ってんだからな
自分が理解できる最小単位にまで分解してそこから考えれば小学生でも簡単に理解できるほど単純なことなのに
ある意味キチガイだよ
ほんとおっそろしいわ
2022/06/10(金) 08:27:42.17ID:/3/IExdga
val results = arrayOf(
mapOf("name" to "田中", "japanese" to 85),
mapOf("name" to "一色", "japanese" to 27)
)
results.forEach { println(it["name"]) }
830デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 11:42:01.25ID:P5hllo58r
javaでこのような配列を作れる方いたら教えてくれませんか?

{{国語=78, 数学=90, 英語=20}, {国語=50, 数学=40, 英語=90}, {国語=80, 数学=60, 英語=85}}

というより、以下のように配列1つ1つにキーを指定しないと無理なのかなー?

{鈴木={国語=78, 数学=90, 英語=20}, 佐藤={国語=50, 数学=40, 英語=90}, 田中={国語=80, 数学=60, 英語=85}}
831デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 11:44:18.12ID:P5hllo58r
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Map<String, Map<String, Integer>> nameMap = new LinkedHashMap<String, Map<String, Integer>>();
//鈴木さん
Map<String, Integer> scoresMap_suzuki = new LinkedHashMap<String, Integer>();
scoresMap_suzuki.put("国語", 78);
scoresMap_suzuki.put("数学", 90);
scoresMap_suzuki.put("英語", 20);
//佐藤さん
Map<String, Integer> scoresMap_satoh = new LinkedHashMap<String, Integer>();
scoresMap_satoh.put("国語", 50);
scoresMap_satoh.put("数学", 40);
scoresMap_satoh.put("英語", 90);
//田中さん
Map<String, Integer> scoresMap_tanaka = new LinkedHashMap<String, Integer>();
scoresMap_tanaka.put("国語", 80);
scoresMap_tanaka.put("数学", 60);
scoresMap_tanaka.put("英語", 85);
//nameマップのvalueに上記3つのマップを入れることで2次元マップを実現
nameMap.put(scoresMap_suzuki);
nameMap.put(scoresMap_satoh);
nameMap.put(scoresMap_tanaka);

System.out.println(nameMap);

}

}

これでエラーになる意味がわからない
2022/06/10(金) 12:06:42.75ID:GmZc9KNQa
やっと努力の形跡を見せてきたか
質問の仕方に露骨な手抜きが透けて見えるから誰にも相手にされないんだよ

Map<String, Map<String, Integer>>にしたいなら鈴木って文字列をプログラムのどこにも指定してないのがおかしい
コメントにしか書いてない
キーを指定しないデータ構造にしたいならList<Map<String, Integer>>に変えろ
偶然動いたほうのデータ構造を採用するんじゃなく、正しく書けばどっちでも実現できるんだから、本当にやりたいことに基づいて一番最初にデータ構造を選択しろ

あと初心者のお約束だけどまずエラーメッセージを読め絶対にだ
英語でも読め
そのエラーになった原因は書いてある
読まないやつは決してプログラミングできるようにならない
833デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 12:21:56.58ID:P5hllo58r
すいません。

【キーを指定しないデータ構造にしたいならList<Map<String, Integer>>】

に変えましたがダメでした(泣)

import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List<Map<String, Integer>> nameMap = new LinkedHashMap<String, Integer>();
//
Map<String, Integer> scoresMap_suzuki = new LinkedHashMap<String, Integer>();
scoresMap_suzuki.put("国語", 78);
scoresMap_suzuki.put("数学", 90);
//
Map<String, Integer> scoresMap_satoh = new LinkedHashMap<String, Integer>();
scoresMap_satoh.put("国語", 50);
scoresMap_satoh.put("数学", 40);
//nameマップのvalueに上記3つのマップを入れることで2次元マップを実現
nameMap.put(scoresMap_suzuki);
nameMap.put(scoresMap_satoh);
System.out.println(nameMap);
}
}
834デフォルトの名無しさん (ワッチョイ 9d97-GLPP)
垢版 |
2022/06/10(金) 13:01:36.73ID:7XjGZ8fL0
>>833
まず、エラー文を読もう。読んでわからないなら貼り付けて質問しよう
835デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 13:06:10.22ID:P5hllo58r
エラー文がこちらになっております。

newをなんとかすれば良さそうですが、

Main.java:16: error: cannot find symbol
nameMap.put(scoresMap_suzuki);
^
symbol: method put(Map<String,Integer>)
location: variable nameMap of type List<Map<String,Integer>>
Main.java:17: error: cannot find symbol
nameMap.put(scoresMap_satoh);
^
symbol: method put(Map<String,Integer>)
location: variable nameMap of type List<Map<String,Integer>>
2 errors
836デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 13:08:11.13ID:P5hllo58r
間違えました。こちらです。

Main.java:4: error: incompatible types: LinkedHashMap<String,Integer> cannot be converted to List<Map<String,Integer>>
List<Map<String, Integer>> nameMap = new LinkedHashMap<String, Integer>();
^
Main.java:15: error: cannot find symbol
nameMap.put(scoresMap_suzuki);
^
symbol: method put(Map<String,Integer>)
location: variable nameMap of type List<Map<String,Integer>>
Main.java:16: error: cannot find symbol
nameMap.put(scoresMap_satoh);
^
symbol: method put(Map<String,Integer>)
location: variable nameMap of type List<Map<String,Integer>>
3 errors
837デフォルトの名無しさん (ワッチョイ 9d97-GLPP)
垢版 |
2022/06/10(金) 13:11:24.13ID:7XjGZ8fL0
>>836
エラー文は一番初めのものから解消していくのが基本なのだが、4行目に対するエラーはなんと書いてある?わかる範囲で説明してみて
838デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 13:16:00.66ID:P5hllo58r
Main.java:4:エラー:互換性のないタイプ:
LinkedHashMap <String、Integer>をList <Map <String、Integer>>に変換できない

つまり、List<Map<String, Integer>> nameMap と
= new LinkedHashMap<String, Integer>();

が不整合ですね。

List<Map<String, Integer>> nameMap に対する newの指定の仕方が
わからないです
2022/06/10(金) 13:23:03.73ID:XXrU704ca
これはたいへんでちゅね
putをaddになおしまちょうねえ
new LinkedHashMap<Map<String, Integer>>はnew ArrayList<>だよ!
さいきんは あかちゃんでも ぷろぐらみんぐ できて すごいね!
840デフォルトの名無しさん (ワッチョイ 9d97-GLPP)
垢版 |
2022/06/10(金) 13:27:57.88ID:7XjGZ8fL0
>>838
その通り
List<Map<String, Integer>>は、要はListインタフェースをもつ変数の宣言であり、実装しているクラスならどれをnewしてもいいのだが、例えば839の言うようにArrayListを使うのが一般的

new ArrayList<Map<String, Integer>>() と書いてもいい(昔はこういう書き方しか出来なかった)が、<>の中は省略できるのでnew ArrayList<>と書けば良い。
841デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 13:35:43.56ID:P5hllo58r
やっとできたー。ありがとう!

import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List<Map<String, Integer>> nameMap = new ArrayList<>();
//
Map<String, Integer> scoresMap_suzuki = new LinkedHashMap<String, Integer>();
scoresMap_suzuki.put("国語", 78);
scoresMap_suzuki.put("数学", 90);
//
Map<String, Integer> scoresMap_satoh = new LinkedHashMap<String, Integer>();
scoresMap_satoh.put("国語", 50);
scoresMap_satoh.put("数学", 40);
//
nameMap.add(scoresMap_suzuki);
nameMap.add(scoresMap_satoh);
System.out.println(nameMap);
}
}

結果
[{国語=78, 数学=90}, {国語=50, 数学=40}]
842デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 13:38:42.47ID:P5hllo58r
昔、sesとして、javaの現場いったんだけ、できなすぎて、COBOLにさせられた。

そこから底辺コボラーとして5年やった。

今はPHPの自社開発に入れたが、javaをある程度復習したかったんや
2022/06/10(金) 13:49:03.38ID:hsJhUEo/M
違う業界の仕事探した方がいいと思うよ
言語関係ないし
844デフォルトの名無しさん (ワッチョイ e579-XK23)
垢版 |
2022/06/10(金) 13:54:49.70ID:ldiGZy+T0
phpにもクラスあるだろう、>>815 の方法でいいじゃん
845デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 14:22:48.49ID:P5hllo58r
お疲れ様です。

名前であるキーを一個一個取り出したいのですが、うまく行きません。

お力添えをお願いできませんか?

import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List<Map<String, Object>> nameMap = new ArrayList<>();
//
Map<String, Object> scoresMap_suzuki = new LinkedHashMap<String, Object>();
scoresMap_suzuki.put("name", "高橋");
scoresMap_suzuki.put("Japanese", 78);
scoresMap_suzuki.put("math", 90);
//
Map<String, Object> scoresMap_satoh = new LinkedHashMap<String, Object>();
scoresMap_satoh.put("name", "吉田");
scoresMap_satoh.put("Japanese", 50);
scoresMap_satoh.put("math", 40);
//
nameMap.add(scoresMap_suzuki);
nameMap.add(scoresMap_satoh);
nameMap.forEach(s -> System.out.println(s["name"])); // forEachメソッド
}
}
846デフォルトの名無しさん (オッペケ Sred-1k0/)
垢版 |
2022/06/10(金) 14:23:20.48ID:P5hllo58r
エラー文

Main.java:18: error: incompatible types: String cannot be converted to int
nameMap.forEach(s -> System.out.println(s["name"])); // forEachメソッド
^
Main.java:18: error: array required, but Map<String,Object> found
nameMap.forEach(s -> System.out.println(s["name"])); // forEachメソッド
^
2 errors

欲しいデータ
高橋
吉田
2022/06/10(金) 14:27:12.29ID:4S+S5AgT0
>>831に戻った方がいいと思う。あれのエラーを取れば完成。
2022/06/10(金) 15:05:56.21ID:33u5+3D+r
>>845
JavaのMapにs["キー"]みたいな取得方法あるんだっけ?
s.get("キー")で取得しないとダメなんじゃないの
849デフォルトの名無しさん (ワッチョイ a110-1k0/)
垢版 |
2022/06/10(金) 16:41:22.08ID:NzC7GHce0
できましたー

import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
List<Map<String, Object>> nameMap = new ArrayList<>();
//
Map<String, Object> scoresMap_suzuki = new LinkedHashMap<String, Object>();
scoresMap_suzuki.put("name", "高橋");
scoresMap_suzuki.put("japanese", 78);
scoresMap_suzuki.put("math", 90);
//
Map<String, Object> scoresMap_satoh = new LinkedHashMap<String, Object>();
scoresMap_satoh.put("name", "吉田");
scoresMap_satoh.put("japanese", 50);
scoresMap_satoh.put("math", 40);
//
nameMap.add(scoresMap_suzuki);
nameMap.add(scoresMap_satoh);
System.out.println(nameMap);
nameMap.forEach(s -> System.out.println(s.get("name"))); // forEachメソッド
}
}
850デフォルトの名無しさん (ワッチョイ d95f-g4lN)
垢版 |
2022/06/10(金) 17:52:21.99ID:TkaoAfxy0
宿題なのかもしれないが、そんなコレクションを何に使うのか?
2022/06/10(金) 19:08:36.09ID:VgCTlmaar
お前ら優しいな
なんだかんだ言って次につながるようにコメントしてんじゃん
2022/06/10(金) 19:23:57.89ID:SVFBay0i0
5年プログラムに従事してこれ・・・? は? え? 嘘だろ・・・
文章も書いてる内容も障害者じゃなければ同じ業種の成人が書くレベルじゃねーんだが・・・
地頭が悪すぎるからマジでもう諦めろ
他人の仕事増やすだけだからマジでやめてくれ
2022/06/10(金) 19:42:00.60ID:UtZNXRslM
コボラーならこんなもんだよ
この業界こういうのは結構いるから、もし一緒に仕事をすることになったらお前の母ちゃんと同じ種類の人間だと思って温かく接してやれ
854デフォルトの名無しさん (ワッチョイ a99c-F19Y)
垢版 |
2022/06/10(金) 21:54:37.23ID:Ea+QN1hv0
エラーメッセージすら読めない奴でも給料もらえるのか
COBOLやPHPはすごいな
2022/06/10(金) 22:18:53.71ID:SVFBay0i0
ペチプの会社に転職したのが本当なら新卒と同じ給料でも雇いたくないだろうから
すぐクビになるか邪険にされて使えないポジションでずっと雑用だろうな
1㍉もプログラム触ったことがない新人が1ヶ月研修したレベル未満だし
2022/06/10(金) 22:44:40.07ID:gvyN/j/4a
ルックスと愛嬌が良くてマスコットとして愛されるパターンもあり得る
適正ないわりに卑屈さがないしセンパイ教えてくださーいでこれまでやってこれた可能性
いずれにしても歳食ってきたら処世術切り替えないとジリ貧なのは同じだけどな
857デフォルトの名無しさん (ワッチョイ a99c-F19Y)
垢版 |
2022/06/10(金) 22:48:02.31ID:Ea+QN1hv0
このスレでも言動がめっちゃ叩かれてるじゃん
愛嬌とかマスコットとは正反対のムカつくキャラだと思うぞ
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況