2017-01-05 4 views
1

宿題タグを見つけることができませんでしたが、これは宿題です。2つのJava配列を結合してランダム化する

各文字にカンマで区切って値をランダムに割り当てることを検討しており、回答に配列を使用する必要があります。

これまでに私が試みたことはありますが、まだまだです。

double[] numbers = {5,4,6.2,1.5}; 
    char[] letters = {'a','v','c',d'}; 

    int temp = (int) (Math.random()*numbers.length); 
    int woo = (int) (Math.random()*letters.length); 


    for (int i = 0; i < letters.length; i++) { 
     for (int j = 0; j < numbers.length; j++){ 
      System.out.print(letters[woo]); 
      System.out.print(numbers[temp]); 
      System.out.print(','); 
     } 
    } 

私のようなものの出力のために期待しています:あなたはCollections.shuffleを使って、配列をシャッフルすることができます

A5すべてのヘルプは

+1

インナー 'for'ループ内のランダムなインデックスを作成します。 –

+0

と 'int'の代わりに' char'と 'double'を使いたいかもしれません – hotzst

+0

大変感謝しています。私はインデックスを移動しましたが、文字が複数回登場しているように見えます。それらをどのようにして1回だけ表示するかについてのヒントはありますか? –

答えて

0

をいただければ幸いです、D4、C1.5、V6.2(またはプリミティブ配列の場合はcustom implementation)、次に並列に配列を反復処理します。

Double[] numbers = { 5.0, 4.0, 6.2, 1.5 }; 
Character[] letters = { 'a', 'v', 'c', 'd' }; 

Collections.shuffle(Arrays.asList(numbers)); 
Collections.shuffle(Arrays.asList(letters)); 

StringJoiner joiner = new StringJoiner(", "); // from Java 8 
int length = Math.min(numbers.length, letters.length); 
for (int i = 0; i < length; i++) { 
    joiner.add(letters[i].toString() + numbers[i]); 
} 
System.out.println(joiner.toString()); 

Ideone Demo

関連する問題