2017-11-13 26 views
-1

私のコードは基本的に配列を実行し、最大値を見つけてそれに関連付けられたインデックスを探します。私が持っている問題は、インデックスを複数の配列ではなく1つの配列にしたいということです。例えば複数の出力を1つの配列にまとめる方法(Java)

(実際の出力):

[1] [2] [3] [4] 

募集出力:ここ

[1,2,3,4]は私のコードです:

int index; 
    int num = myArray[0]; 
    for (int i = 0; i < myArray.length; i++) { 
     if (num < myArray[i]) { 
      num = myArray[i]; 
     } 
    } 
    for (int j = 0; j < myArray.length; j++) { 
     if(num == myArray[j]){ 
       index = j; 
       System.out.println("[" + j + "]"); 
     } 
    } 

私はすべてのやり直しせずにこれを行う方法がわかりませんコード。ありがとう。

+0

だから、あなたの質問には、配列として出力を「印刷」する方法ですか? –

+0

値1,2,3,4を含む配列*を作成するか、文字列 "[1,2,3,4]"を出力するだけですか? – DodgyCodeException

+0

私はその出力を出力例として意味していました。私は出力を別々の配列ではなく1つの配列として欲しかった。 – Foreboding

答えて

1
int index; 
int num = myArray[0]; 
for (int i = 0; i < myArray.length; i++) { 
    if (num < myArray[i]) { 
     num = myArray[i]; 
    } 
} 
System.out.print("["); 
int count = 0; 
for (int j = 0; j < myArray.length; j++) { 
    if(num == myArray[j]){ 
      index = j; 
      if(count++ > 0) 
      System.out.print(","); 
      System.out.print(j); 
    } 
} 
System.out.println("]"); 
+0

ありがとうございます!これは完全にそれを解決しました。 – Foreboding

0
int maxValue = myArray[0]; 
int countMaxValues = 1; 
for (int i = 1; i < myArray.length; i++) { 
    if (myArray[i] > maxValue) { 
     maxValue = myArray[i]; 
     countMaxValues = 1; 
    } 
    else if (myArray[i] == maxValue) { 
     countMaxValues++; 
    } 
} 

int maxValueIndices = new int[countMaxValues]; 
int i = 0; 
for (int j = 0; j < myArray.length; j++) { 
    if(myArray[j] == maxValue){ 
     maxValueIndices[i++] = j; 
    } 
} 

System.out.println(Arrays.toString(maxValueIndices)); 
関連する問題