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

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

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

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

Q&A

解決済

2回答

3143閲覧

配列の中の数字の順序を入れ替えたい。

rink

総合スコア80

Java

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

0グッド

0クリップ

投稿2019/03/27 14:58

編集2019/03/27 18:44

java初心者です。よろしくお願いします。

java

1import java.util.Scanner; 2import java.util.ArrayList; 3import java.util.*; 4 5public class Matiuke2{ 6 7 public static void main(String[] args){ 8 9 Scanner stdIn = new Scanner(System.in); 10 ArrayList<Integer> numbers = new ArrayList<Integer>(); 11 ArrayList<Integer> numnums = new ArrayList<Integer>(); 12 13 /*System.out.println("患者様の数"); 14 int n = stdIn.nextInt(); 15 System.out.print("\n\n\n\n");*/ 16 17 18 System.out.println("患者様の番号入力(1から)"); 19 // for(int i = 0; i < n; i++){ 20 while(true){ 21 22 int copnum = stdIn.nextInt(); 23 System.out.print("\n\n\n\n"); 24 25 if(copnum != 88888){ 26 27 if(numbers.contains(copnum)){ 28 29 //System.out.println("aaaaaaaaaaaaaaaaaaaa"); 30 int num = numbers.indexOf(copnum); 31 numbers.remove(num); 32 33 34 } 35 else if(numnums.contains(copnum)){ 36 37 int numy = numnums.indexOf(copnum); 38 39 numnums.remove(numy); 40 41 } 42 else{ 43 44 numbers.add(copnum); 45 Arrays.sort(numbers); 46 47 } 48 49 } 50 else{ 51 52 int waitnum = stdIn.nextInt(); 53 System.out.println("現在処理中の番号" + waitnum); 54 numnums.add(waitnum); 55 56 } 57 58 System.out.println("お会計可能な患者様の番号" + numbers); 59 /* if(copnum == 88888){ 60 System.out.println("現在処理中の番号" + copnum); 61 }*/ 62 63 64 // }//for文終了 65 } 66 67 //x番目とx+1番目の数の差が1  正常                              1以上だったらその差分を、xに足す 2,4→→ 4-2 = 2 x+1とx+2を別の表示枠に生成 68} 69 70} 71

自分は、
```java
Arrays.sort(numbers); 

を使えば解決すると思ったのですが、 ```java Matiuke2.java:45: エラー: sortに適切なメソッドが見つかりません(ArrayList<Integer>) Arrays.sort(numbers); ^ メソッド Arrays.sort(int[])は使用できません (引数の不一致: ArrayList<Integer>をint[]に変換できません:) メソッド Arrays.sort(long[])は使用できません (引数の不一致: ArrayList<Integer>をlong[]に変換できません:) メソッド Arrays.sort(short[])は使用できません (引数の不一致: ArrayList<Integer>をshort[]に変換できません:) メソッド Arrays.sort(char[])は使用できません (引数の不一致: ArrayList<Integer>をchar[]に変換できません:) メソッド Arrays.sort(byte[])は使用できません (引数の不一致: ArrayList<Integer>をbyte[]に変換できません:) メソッド Arrays.sort(float[])は使用できません (引数の不一致: ArrayList<Integer>をfloat[]に変換できません:) メソッド Arrays.sort(double[])は使用できません (引数の不一致: ArrayList<Integer>をdouble[]に変換できません:) メソッド Arrays.sort(Object[])は使用できません (引数の不一致: ArrayList<Integer>をObject[]に変換できません:) メソッド Arrays.<T#1>sort(T#1[],Comparator<? super T#1>)は使用できません (型変数T#1を推論できません (実引数リストと仮引数リストの長さが異なります)) メソッド Arrays.<T#2>sort(T#2[],int,int,Comparator<? super T#2>)は使用できません (型変数T#2を推論できません (実引数リストと仮引数リストの長さが異なります)) T#1,T#2が型変数の場合: メソッド <T#1>sort(T#1[],Comparator<? super T#1>)で宣言されているT#1 extends Object メソッド <T#2>sort(T#2[],int,int,Comparator<? super T#2>)で宣言されているT#2 extends Object 注意:一部のメッセージは簡略化されています。-Xdiags:verboseで再コンパイルして完全な出力を取得してください エラー1個

と表示されてしまいます。
自分は、このエラーメッセージすら理解できません。また、自分の書いたコードだと、何が不具合を呼んでしまうのでしょうか? どうかよろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

BAが出ていますが・・・

java

1 public static void main(String[] args) { 2 Scanner stdIn = new Scanner(System.in); 3 ArrayList<Integer> numbers = new ArrayList<>(); 4 ArrayList<Integer> numnums = new ArrayList<>(); 5 6 /*System.out.println("患者様の数"); 7 int n = stdIn.nextInt(); 8 System.out.print("\n\n\n\n");*/ 9 System.out.println("患者様の番号入力(1から)"); 10 // for(int i = 0; i < n; i++){ 11 while (true) { 12 13 int copnum = stdIn.nextInt(); 14 System.out.print("\n\n\n\n"); 15 16 if (copnum != 88888) { 17 if (numbers.contains(copnum)) { 18 //System.out.println("aaaaaaaaaaaaaaaaaaaa"); 19 int num = numbers.indexOf(copnum); 20 numbers.remove(num); 21 22 } else if (numnums.contains(copnum)) { 23 int numy = numnums.indexOf(copnum); 24 numnums.remove(numy); 25 } else { 26 numbers.add(copnum); 27 numbers.sort((a, b) -> a - b); 28 } 29 } else { 30 int waitnum = stdIn.nextInt(); 31 System.out.println("現在処理中の番号" + waitnum); 32 numnums.add(waitnum); 33 } 34 35 System.out.println("お会計可能な患者様の番号" + numbers); 36 /* if(copnum == 88888){ 37 System.out.println("現在処理中の番号" + copnum); 38 }*/ 39 } 40 41 } 42

投稿2019/03/27 15:37

cateye

総合スコア6851

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

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

rink

2019/03/27 15:48

ご回答ありがとうございます! なるほど…、このようなやり方もあったんですね! 参考にさせていただきます!!!
rink

2019/03/27 15:53

aとかbって宣言しなくても使える理由とか説明できませんか? そこのところあまり理解ができませんでした…
rink

2019/03/27 16:31

ありがとうございました!
guest

0

ベストアンサー

Arraysクラスのメソッドは、その名の通り配列に対して操作を行うものが基本であり、Listを対象とした操作はありません。
Listを対象としたいなら、Collections.sort()です。

投稿2019/03/27 15:18

swordone

総合スコア20651

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

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

rink

2019/03/27 15:26

ご回答ありがとうございます! そうなんですね…、知識不足でした。。。 助かりました!ありがとうございました!!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問