質問をすることでしか得られない、回答やアドバイスがある。

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

新規登録して質問してみよう
ただいま回答率
85.48%
Java

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

Q&A

解決済

1回答

1440閲覧

配列をコレクションのarrayListで書き替えたいです。

talabagani

総合スコア50

Java

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

0グッド

1クリップ

投稿2021/07/10 00:40

編集2021/07/10 02:48

前提・実現したいこと

ランダムな整数を5つインプットさせ、その番号を大きい順に並べ替えるプログラムです。

模範解答は、配列をつかっているのですが、これをArrayListを使って書きかえるのが目標です。
ArrayListを引数としてメソッドにいれているのですが、その部分がエラーになっています。
ウェブサイトなどをみてArrayListを引数にいれているコードをみたのですが、同じように使っていると思います。

発生している問題・エラーメッセージ

MacBook:src tomifukumoto$ javac Array.java
Array.java:21: エラー: <identifier>がありません
public static void printArrayList(ArrayList<Integer>, array){
^
Array.java:21: エラー: <identifier>がありません
public static void printArrayList(ArrayList<Integer>, array){
^
Array.java:26: エラー: <identifier>がありません
public static ArrayList<Integer> sortIntegers(ArrayList<Integer>, array){
^
Array.java:26: エラー: <identifier>がありません
public static ArrayList<Integer> sortIntegers(ArrayList<Integer>, array){
^
エラー4個

#[自分コード]

java

1import java.util.ArrayList; 2import java.util.Scanner; 3 4public class Main { 5Scanner scanner = new Scanner(System.in); 6 public static void main(String[] args) { 7 ArrayList<Integer> numbers= getIntegers(5); 8 ArrayList<Integer> sorted=sortIntegers(numbers); 9 printArrayList(sorted); 10 } 11 12 public static ArrayList<Integer> getIntegers(int capacity){ 13 ArrayList<Integer> numbers= new ArrayList<>(); 14 system.out.println("Type in" + capacity + "numbers" ); 15 for(int i=0; i<capacity-1 ; i++){ 16 numbers.set(i)=scanner.nextInt(); 17 } 18 return numbers; 19 } 20 21 public static void printArrayList(ArrayList<Integer>, array){ 22 for(int i=0; i<=array.size(); i++){ 23 System.out.println(array.get(i)); 24 } 25 } 26 public static ArrayList<Integer> sortIntegers(ArrayList<Integer>, array){ 27 ArrayList<Integer> copyNumbers=new ArrayList<Integer>(array); 28 //ディープコピーをした。 29 boolean flag=true; 30 int temp; 31 while(flag){ 32 flag=false; 33 for(i=0; i<=copyNumbers.size(); i++){ 34 if(copyNumbers.get(i)<copyNumbers.get(i+1)){ 35 temp=copyNumbers.get(i); 36 copyNumbers.set(i)=copyNumbers.set(i+1); 37 copyNumbers.set(i+1)=temp; 38 flag=true; 39 } 40 } 41 } 42 return copyNumbers; 43 } 44} 45

#模範回答コード

java

1package com.timbuchalka; 2 3import java.util.Arrays; 4import java.util.Scanner; 5 6public class Main { 7 private static Scanner scanner = new Scanner(System.in); 8 9 public static void main(String[] args) { 10 // Create a program using arrays that sorts a list of integers in descending order. 11 // Descending order is highest value to lowest. 12 // In other words if the array had the values in it 106, 26, 81, 5, 15 your program should 13 // ultimately have an array with 106,81,26, 15, 5 in it. 14 // Set up the program so that the numbers to sort are read in from the keyboard. 15 // Implement the following methods - getIntegers, printArray, and sortIntegers 16 // getIntegers returns an array of entered integers from keyboard 17 // printArray prints out the contents of the array 18 // and sortIntegers should sort the array and return a new array containing the sorted numbers 19 // you will have to figure out how to copy the array elements from the passed array into a new 20 // array and sort them and return the new sorted array. 21 22 int[] myIntegers = getIntegers(5); 23 int[] sorted = sortIntegers(myIntegers); 24 printArray(sorted); 25 26 } 27 28 public static int[] getIntegers(int capacity) { 29 int[] array = new int[capacity]; 30 System.out.println("Enter " + capacity +" integer values:\r"); 31 for(int i=0; i<array.length; i++) { 32 array[i] = scanner.nextInt(); 33 } 34 return array; 35 } 36 37 public static void printArray(int[] array) { 38 for(int i=0; i<array.length; i++) { 39 System.out.println("Element " + i + " contents " + array[i]); 40 } 41 } 42 43 public static int[] sortIntegers(int[] array) { 44// int[] sortedArray = new int[array.length]; 45// for(int i=0; i<array.length; i++) { 46// sortedArray[i] = array[i]; 47// } 48 int[] sortedArray = Arrays.copyOf(array, array.length); 49 50 boolean flag = true; 51 int temp; 52 while(flag) { 53 flag = false; 54 // element 0 160 55 // element 1 50 56 // element 2 40 57 58 for(int i=0; i<sortedArray.length-1; i++) { 59 if(sortedArray[i] < sortedArray[i+1]) { 60 temp = sortedArray[i]; 61 sortedArray[i] = sortedArray[i+1]; 62 sortedArray[i+1] = temp; 63 flag = true; 64 } 65 } 66 } 67 68 return sortedArray; 69 } 70}

試したこと

arraylistを引数としてメソッドに組み込むところでエラーになっているようなので、arraylistをメソッドにいれているコードを閲覧してみました。
同じような組み込み方で組み込んでいました。

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

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

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

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

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

javahack

2021/07/10 01:06 編集

ネットで見つけた"模範解答"なんか無駄に張らずに自分で書いたコードを質問文に張り付けてください。 タイトルのarrayListがjava.util.ArrayListクラスを指しているなら正しい綴りで書いてください。
BeatStar

2021/07/10 01:10

プログラミングは『こう書けばいい』ではありません。 またエラーメッセージぐらいは読みましょう。 エラーメッセージは怒声でも罵倒でも罵声でもハラスメントでもなく、 コンパイラ等からのメッセージです。
m.ts10806

2021/07/10 01:11

以前得られたアドバイスを何も参考にせず活かさずわが道いくこと決めたなら質問してもアドバイス得られなくなっていくだけかと。
dodox86

2021/07/10 01:36

> ウェブサイトなどをみてArrayListを引数にいれているコードをみたのですが、同じように使っていると思います。 ですから「ように」じゃダメです。ちゃんと内容を理解して消化しないと。見よう見真似でいきなり書き換えるようとするのではなく、ArrayListを使った簡単なコードを自分で書いて試すものです。
m.ts10806

2021/07/10 01:40

可能なら俺が考えた俺の質問テンプレート じゃなくteratailの質問テンプレート使ってほしいですね。 自分のテンプレートなのに埋まってない項目そのまま出してちゃ読みづらいだけ。項目も多すぎて要件の把握がしづらいですし、ネットで探してきたコードをそのまま提示って、正直文字数の無駄です。
m.ts10806

2021/07/10 01:41

真面目なのはいいことですが、力を入れるべきところを間違えたら単なる徒労。やったわりに得られるものがない。
swordone

2021/07/10 01:56

> 2021年5月中旬から独学でJavaを学習しはじめました。 progateを3巡、ドットインストール1巡、スッキリJavaの本を8割読みました。 何を何巡したかは関係ない。スッキリJava8割読んでも、最初の1割も理解できてない。「読む」とか「勉強する」とかの意味を勘違いしていますね。
talabagani

2021/07/10 02:49

テンプレートを使って書き直してみました。
m.ts10806

2021/07/10 03:47

あまりちゃんとコメント読まれないんですね。 同じような投稿繰り返してることに気づいてください。 投稿が同じ以上、応えもまた同じですよ。
m.ts10806

2021/07/10 05:38

swordoneさん 「〇時間調べました」「もう〇日も詰まってます」というのと同じですね。 見当違いなやり方だと何年やっても同じ。何周しても同じ。 そこに本人が気づいてないだけ。やった気になってるだけで、時間浪費しているだけということに気づかない。 コード書くことだけが目的になってる人にありがち。
guest

回答1

0

ベストアンサー

今回のエラーメッセージを読むと問題は2つあるようです。

1つは単純なミス(基礎がわかっていれば回避できるもの)で、

もう一つは言語的な制限のようです。

1つ目のエラーを見てみると、

Array.java:21: エラー: <identifier>がありません public static void printArrayList(ArrayList<Integer>, array){ ^

ですね。

まずはArray.javaの21行目を見てください。
(なんか、クラス名が違うようだけどPaiza IOとかで提示したかなんかだと仮定)

よーく見てください。

引数が

ArrayList<Integer>, array

となっています。

プリミティブ型(intとか)だと

int, a

のような状態です。

引数はJavaの場合、コンマ(,)で区切ります

つまり『変数名』に相当する部分(仮引数名)が無いと解釈されているのです。

基礎がわかっているなら対処できますね。

二個目のエラーも同じ。
(場所が違うが)

投稿2021/07/10 03:08

BeatStar

総合スコア4958

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

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

talabagani

2021/07/12 11:55

本当ですね。人の思い込みってすごい。カンマが必要だと思い込んでました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問