2017-10-27 6 views
0

を解決しようとしています。これは、Javaでint配列を逆にする必要があります。キャッチは、;の1つしか取得できないため、これを行うにはStreams APIを使用する必要があると仮定しています。 Collections.reversedOrder() impopsesので、ただしJava 8:1行でint配列を逆順にする(Streams APIを使用)

public static int[] reverse(int[] a) { 
    return Arrays.stream(a).boxed() 
    .sorted(Comparator.reverseOrder()) 
    .mapToInt(i -> i).toArray(); 
    } 

- 、IはCollections.reversedOrder()を使用してみました

public static int[] reverse(int[] a) { 
    List<Integer> numbers = IntStream.of(a).boxed().collect(Collectors.toList()); 
    Collections.reverse(numbers); 
    return numbers.stream().mapToInt(i -> i).toArray(); 
    } 

次 -

私はそれが適切に配列を逆転、従来の方法を試みたが、1つのセミコロンテストに失敗します コレクションの要素の自然順序付け、配列が1から5までの数字で構成されている場合は、配列内の要素の順序は何か、常に {5, 4, 3, 2, 1}を返します。

Comparator.reversed()メソッドがありますが、それは既存のコンパレータで呼び出す必要があります。私はそれをどうやって行うのか、それがうまくいくかどうかはわかりません。

これを行う別の方法はありますか?

+0

ヒント: 'IntStream.iterate'を逆の順序を作成します。 –

答えて

0

あなたは、インデックスの流れを反転させることによってそれを行うことができます。

return IntStream.range(0, a.length) 
     .map(i -> a[a.length - 1 - i]) 
     .toArray(): 
+1

複製物の溶液と同じ。 (downvotingではなく、ただコメントする) –

関連する問題