まずは、10件の数値を sources0[]に代入
一文字目の数字をみて、1~9の数値毎 ArrayListに追加(10回)
その後、int型二次元配列にしたく、変換作業をするがどうしても変換されず。
ネットでいろいろ調べたがどうしてもできませんでした。
どなた様かどうかご教授ください。よろしくお願いいたします。
エラー内容は、
Type mismatch: cannot convert from Object[] to int[]
になります。
Java
1import java.util.ArrayList; 2import java.util.Random; 3 4public class ArraySort { 5 6 static final int NUMBERS = 10; 7 public static void main(String args[]) { 8 9 // sources0 の初期化と生成代入 10 int[] sources0 = new int[NUMBERS]; 11 for (int x = 0; x < NUMBERS; x++) { 12 sources0[x] = (int)(Math.random() * Integer.MAX_VALUE); 13 } 14 15 // sources1 の初期化 16 ArrayList[] sources1 = new ArrayList[10]; 17 for (int x = 1; x <= 9; x++) { 18 sources1[x] = new ArrayList<Integer>(); 19 } 20 21 // 一番左側の数値を取得して、9個のArrayListそれぞれに追加する 22 for (int x: sources0) { 23 sources1[Integer.valueOf(String.valueOf(x).substring(0, 1))].add(x); 24 } 25 26 // sources2 の初期化、それぞれを配列に変換 27 int[][] sources2 = new int[10][]; 28 for (int x = 1; x <= 9; x++) { 29 sources2[x] = new int[sources1[x].size()]; 30 sources2[x] = sources1[x].toArray(new String[sources1[x].size()]); 31 } 32 33 } 34 35}
補足情報
Java11
> まずは、10件の数値を sources0[]に代入
> 一文字目の数字をみて、1~9の数値毎 ArrayListに追加(10回)
> その後、int型二次元配列にしたく、変換作業をするがどうしても変換されず。
どのような値の入力をして、結果的にどのような2次元配列にしたいのか、具体的な値で説明してください。(1文字目の数字って何?) 今の説明だと正直、判然としません。
エラーが何を指摘しているのかは理解されてるのでしょうか。
https://qiita.com/cannorin/items/eb062aae88bfe2ad6fe5
dodox86さんへ
どのような値の入力をして、結果的にどのような2次元配列にしたいのか、
具体的な値で説明してください。
とありましたが、コードをちゃんと読めば理解できると思いますが。。。
m.ts10806さんへ
エラーの内容はわかってはいるつもりです。
なのでどう書けばいいか質問したまでです。
お二人方へ
そういうコメントは、ある意味ではありがたいのでしょうが、
以下、momon-gaさんのような明確な回答を記していただけるわけでもないのに
点数かせぎをする為なのかはわかりませんが、やめたほうがいいと思います。
ここは回答欄ではなく「質問への追記修正」のコメント欄です。
いくら書いても一切スコアに影響しません。
「書いてないことは分からないから、ちゃんと書いてね」と依頼してるだけですよ。
そういうことは明確な回答を書いてからにして下さい。
質問の内容がわからないのであれば
質問に質問が返ってくるのもわかりますが
m.ts10806さんが書いてきた内容は、
そう言った質問の内容がわからない等な内容ではありません。
エラーが何を指摘しているのか!?等ではなく
以下回答者のような明確な回答を書いてきてはいかがでしょう
実際、以下回答者はなんの質問等なく普通に答えを返してくれています。
m.ts10806さんのような質問なんて一つもしてきてないですよ!?
@iBETAさん
m.ts10806さんの[2021/01/21 19:29]のコメント:
> 「書いてないことは分からないから、ちゃんと書いてね」と依頼してるだけですよ。
は、恐らくは主に私のコメント、指摘事項についていただいたフォローだと思います。
momon-gaさんも「やりたいことは置いておき」と要件不明瞭であることを認めつつの回答です。
>そういうことは明確な回答を書いてからにして下さい。
要件不明瞭および「何を調べ何を試したのか」が明確に記載されていないのは
「推奨していない質問」にあたります。
https://teratail.com/help/avoid-asking
明確な回答をするために追記を求めているのですが、
あなたの質問は人に何かを指摘できるほど十分な内容と言えるでしょうか。
読むのは赤の他人です。
「調べた」「うまくいかない」で伝わる情報量はゼロです。厳しい言い方するとノイズです。
https://teratail.com/help/question-tips
コピペで動くコードを求めるのは質問ではなく作業依頼です。
いただいた回答のコードを半分も理解できてないなら
同じように丸投げを繰り返し他人の時間を浪費することになります。
質問内容とコメントから、「もらったコードで動いた、やった」程度で済んでるのは見えます。
「回答を理解できたか」伝えてくださいね。
https://teratail.com/help/question-tips#questionTips4-2
「厚意で成り立っている場」ということは自覚されたほうが良いです。
指摘しないと、それを明示しないと伝わらないのは当然なので指摘しているわけですけど、
指摘したら指摘したで、自分の主張だけしていくとか、この場には合わないと思います。
お金しっかり使って家庭教師なりメンターなり雇った方が望めるのでは。
「厚意の場である」「サイトの利用ルールが明文されている」「回答者はスコア貯めたところで何の報酬もない」場です。
自分が欲しいものだけ求める前に、サイトの利用ルールくらい確認されてはいかがでしょうか。
同じようなスタイルを続ける限り、手を差し伸べる人が減ってくだけに思います。
もうちょっと端的に言うと
「その場しのぎの回答は(内容次第だが)すぐにできる。全体の流れや要件次第ではその場しのぎにしかならず望ましい対応にならない」 ことを防ぐためのこのコメント欄です。
結構あるんですよ。その場しのぎの回答によって解決したと思ったら、結局ツギハギになってしまって望ましい実装にならず同じような質問を繰り返すことになることって。
回答者はそのあたりよく知っているのでこのコメント欄で要件を具体的にしていっています。
少なくとも僕が書いた内容を明確に回答してくれてる方がいます。
その時点で、m.ts10806さんが何をおっしゃろうと、
質問に対する答えを書いていない以上、そこには全く説得力はありません。
残念です。もうこの話しは終わりにしましょう。。。
時間の無駄です。。。レス不要でお願いいたします。
回答1件
あなたの回答
tips
プレビュー