Saya memiliki 3 ganda - a, b dan c, diteruskan ke metode numPos sebagai 3 argumen berbeda. Saya ingin menghitung jumlah nilai positif di antara mereka, maka tipe pengembalian metode ini adalah int.
Saya berpikir untuk mendeklarasikan Array/List dan menambahkan nilai ke dalamnya, memeriksa apakah nilainya lebih besar dari 0, tetapi saya bahkan tidak dapat melakukan bagian pertama dari ide saya - mendeklarasikan List dan meneruskan semua nilai-nilai padanya. Berikut kode yang saya tulis:

public static int numPos(double a, double b, double c) {
        return List<double> myList = new List<double>(DoubleStream.of(a,b,c).forEach(i -> myList.add(i))).stream().count();
}
2
olimpiabaku 13 Mei 2021, 21:20

1 menjawab

Jawaban Terbaik

Anda dapat dengan mudah menggunakan:

return Stream.of(a, b, c).filter(x -> x > 0).count();

Perhatikan bahwa count() return long dan bukan int, Anda perlu mengubah tipe yang dikembalikan menjadi long.


Penting: Anda benar-benar memperumit kode Anda, dan Anda memiliki banyak kesalahan yang harus Anda hindari di masa mendatang.

4
YCF_L 13 Mei 2021, 18:29