前提・実現したいこと
変数nを設定しその数分の要素数を持つ配列m(素数を調べたいので2から始める)を作った後、そこから素数のみの配列zを作りたいです。
実現したい例としては、変数n=20の場合、配列m={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21}、
配列Z={2,3,5,7,11,13,17,19}になるようにしたいです。
発生している問題・エラーメッセージ
シンボルを見つけられません シンボル: クラス Int 場所: クラス Main
シンボルを見つけられません シンボル: 変数 z 場所: クラス Main
該当のソースコード
java
1import java.util.*; 2public class Main { 3 public static void main(String[] args){ 4 int n = 20; 5 int[] m = new int[n]; 6 ArrayList<Integer> intList = new ArrayList<Integer>(); 7 int flag; 8 for(int i = 0; i < m.length; i++){ 9 m[i] = i + 2; 10 flag = 0; 11 for(int j = 2; j < i; j++){ 12 if(m[i] % j == 0){ 13 flag = 1; 14 continue; 15 } 16 } 17 if(flag == 0){ 18 intList.add(m[i]); 19 Int[] z = intList.toArray(new String[intList.size()]); 20 } 21 } 22 System.out.print(Arrays.toString(z)); 23 } 24}
flag=0(素数)の場合の数値をリストに格納してあげて、それを配列にすれば実現したい例の配列zのようになると考えているのですが、上記エラーメッセージが出てしまいました。どうすれば解決するのかアドバイスを頂けると幸いです。また、もしほかに答えを求める良い方法がありましたらぜひ教えていただきたいです。
よろしくお願い致します。
※追記
以下に修正したのですが、また別のエラーメッセージが出ました。
java
1import java.util.*; 2public class Main { 3 public static void main(String[] args){ 4 int n = 20; 5 int[] m = new int[n]; 6 int[] z; 7 int flag; 8 for(int i = 0; i < m.length; i++){ 9 m[i] = i + 2; 10 flag = 0; 11 for(int j = 2; j < i; j++){ 12 if(m[i] % j == 0){ 13 flag = 1; 14 continue; 15 } 16 } 17 if(flag == 0){ 18 List<Integer> list = Arrays.asList(m[i]); 19 z = list.toArray(new int[list.size()]); 20 } 21 } 22 System.out.print(Arrays.toString(z)); 23 } 24}
発生している問題・エラーメッセージ
toArrayに適切なメソッドが見つかりません(int[]) メソッド java.util.List.<T>toArray(T[])は使用できません (推定型は宣言された境界に適合しません 推定: int 境界: java.lang.Object) メソッド java.util.List.toArray()は使用できません (実引数リストと仮引数リストの長さが異なります)
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/06 15:12