teratail header banner
teratail header banner
質問するログイン新規登録
Java

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

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

Q&A

解決済

1回答

7887閲覧

ArrayListで偶数と奇数にわけたい

ssssa

総合スコア39

Java

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

ArrayList

Java用のタグです。arrayListはListインターフェースを実装した、リサイズ可能な配列用クラスです。

0グッド

0クリップ

投稿2018/08/24 13:17

0

0

<<<<<<< Probex5_1 問題文 >>>>>>>>
以下のように、0から10までの乱数を発生させてその値を表示し、0が出たら、それまで入力した整数をすべて、奇数・偶数にわけて表示するプログラムを作りなさい。この時、入力された奇数・偶数の値は、それぞれ別の、ArrayListで作った可変長配列の中に格納すること。

Java

1import java.util.ArrayList; 2 3public class Probex5_1 { 4 5 public static void main(String[] args) { 6 ArrayList<Number> al = new ArrayList<Number>(); 7 al.add(new Number("奇数", 1, 3, 5, 7)); 8 al.add(new Number("偶数", 2, 4, 6, 8)); 9 10 while (true) { 11 12 int a = (int) (Math.random() * 10); 13 System.out.println("0から10の値を出力:" + a); 14 if (a == 0) { 15 break; 16 } 17 } 18 System.out.println("終了します" + ""); 19 20 } 21}

このように書きました。エラーが取れていない状態です。
どなたかご教示お願いいたします。

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

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

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

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

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

y_waiwai

2018/08/24 13:23

どういうエラーが出たのか、エラーメッセージそのまま提示してください
ssssa

2018/08/24 13:29 編集

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 型 Number のインスタンスを生成できません 型 Number のインスタンスを生成できません
ssssa

2018/08/24 13:29

質問ありがとうございます。上記のようなエラーが出ました。
m.ts10806

2018/08/24 13:39

なんの問題ですかねこれ。出展次第では出展元の規約に触れる可能性もありますし、課題や宿題であればそういうのを代行するサイトではないので非推奨です。
ssssa

2018/08/24 14:11

ありがとうございます。
guest

回答1

0

ベストアンサー

java

1import java.util.ArrayList; 2import java.util.Arrays; 3import java.util.List; 4import java.util.Random; 5 6public class Probex5_1 { 7 8 public static void main(String[] args) { 9 List<Integer> evens = new ArrayList<Integer>(); 10 List<Integer> odds = new ArrayList<Integer>(); 11 List[] lists = {evens, odds}; 12 while (true) { 13 Random rnd = new Random(); 14 int v = rnd.nextInt(10); 15 System.out.println("0から10の値を出力:" + v); 16 if (v == 0) { 17 break; 18 } 19 lists[v % 2].add(v); 20 } 21 System.out.println(Arrays.toString(odds.toArray())); 22 System.out.println(Arrays.toString(evens.toArray())); 23 } 24}

実行例:
イメージ説明

追記:

上のコードでは、 warnign がでていたので、それを解消させました。

java

1import java.util.ArrayList; 2import java.util.Arrays; 3import java.util.List; 4import java.util.Random; 5 6public class Probex5_1 { 7 public static void main(String[] args) { 8 List<Integer> evens = new ArrayList<Integer>(); 9 List<Integer> odds = new ArrayList<Integer>(); 10 List<List<Integer>> lists = Arrays.asList(evens, odds); 11 while (true) { 12 Random rnd = new Random(); 13 int v = rnd.nextInt(10); 14 System.out.println("0から10の値を出力:" + v); 15 if (v == 0) { 16 break; 17 } 18 lists.get(v % 2).add(v); 19 } 20 for (List<Integer> ls : lists) { 21 System.out.println(Arrays.toString(ls.toArray())); 22 } 23 } 24}

投稿2018/08/24 14:37

編集2018/08/24 15:18
katoy

総合スコア22328

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

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

ssssa

2018/08/24 14:43

素早い回答ありがとうございます! 参考になりました。
ssssa

2018/08/24 16:17

丁寧かつ分かりやすい回答ありがとうございました。参考にさせていただきます。
ssssa

2018/09/03 17:39

お伺いしたいことがありましてコメントいたしました。 表示に『奇数:●●』『偶数●●』と回答表示したいのですがどこでどのように 表示しているのでしょうか?大変申し訳ないのですが、ご教示していただきたいです。
katoy

2018/09/03 21:16

liists[0], lists[1] の長さを表示すればよいです。
ssssa

2018/09/08 19:17

丁寧な回答ありがとうございます。参考にさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問