Rumah > Java > javaTutorial > Program Java untuk mencari nombor ganjil maksimum dalam tatasusunan menggunakan aliran dan penapis

Program Java untuk mencari nombor ganjil maksimum dalam tatasusunan menggunakan aliran dan penapis

WBOY
Lepaskan: 2023-09-09 19:49:02
ke hadapan
1316 orang telah melayarinya

Program Java untuk mencari nombor ganjil maksimum dalam tatasusunan menggunakan aliran dan penapis

Dalam bahagian ini, kami akan menulis program Java untuk mencari nombor ganjil terbesar dalam tatasusunan menggunakan aliran dan penapis. nombor ganjil ialah nombor yang tidak boleh dibahagi dengan "2", atau bakinya ialah 1 apabila dibahagikan dengan "2". Dengan kata lain, ia boleh ditulis dalam bentuk ‘2n+1’. Kami akan mencari nombor ganjil terbesar dalam tatasusunan.

Contoh

Input: array = {1, 7, 2, 3, 9, 5, 10}
Output: Maximum odd number is 9
Salin selepas log masuk

Daripada contoh di atas, nombor ganjil terbesar dalam tatasusunan ialah 9.

Input: array = {11, 17, 12, 13, 19, 15, 20}
Output: Maximum odd number is 19
Salin selepas log masuk

Daripada contoh di atas, nombor ganjil terbesar dalam tatasusunan ialah 19.

Cara menggunakan

stream() - Ia digunakan untuk mencipta aliran elemen supaya kita boleh menggunakan kaedah penapis(), map(), reduce(), dsb. untuk memproses data # 🎜🎜#

Arrays.stream(collection)	
Salin selepas log masuk

filter() - Digunakan untuk menapis data dalam strim, iaitu, untuk memilih elemen tertentu daripada strim berdasarkan syarat. Ia mengembalikan nilai boolean.

treamobject.filter(condition)	
Salin selepas log masuk

reduce() - Digunakan untuk mengurangkan bilangan elemen dan mengembalikan nombor hasil tunggal berdasarkan operasi binari.

Streamobject.reduce(initial value, binary operation)	
Salin selepas log masuk

Kini kita akan membincangkan cara yang berbeza untuk mencari nombor ganjil terbesar dalam tatasusunan menggunakan strim dan penapis (dilaksanakan menggunakan kod dalam Java).

Algoritma

  • Memulakan tatasusunan dan gunakan kaedah strim() untuk mencipta strim untuk tatasusunan

  • Gunakan kaedah penapis() dan parameter sebagai syarat untuk menapis strim untuk menapis nombor ganjil daripada tatasusunan.

  • Gunakan kaedah max() untuk mengembalikan nombor ganjil terbesar, jika tiada nombor ganjil, gunakan kaedah orElse() untuk mencetak -1.

Contoh

Dalam contoh ini, kita mula-mula memulakan tatasusunan. Kemudian kami menggunakan kaedah "strim()" untuk menukar tatasusunan kepada strim, kemudian gunakan kaedah "penapis()" pada strim untuk menapis nombor ganjil yang terdapat dalam strim, dan pada strim yang terhasil kami menggunakan maks. () kaedah untuk mencari semua nombor ganjil dalam aliran nilai maksimum. Jika tiada nombor ganjil dalam strim, kami menggunakan fungsi "orElse" untuk mengembalikan nilai parameter input. Kemudian kami mencetak nilai yang disimpan dalam pembolehubah "maximumOdd".

import java.util.*;
public class Main {
   public static void main(String[] args) {
      int[] array = {1, 7, 2, 3, 9, 5, 10};
      int maximumOdd = Arrays.stream(array)
      .filter(n -> n % 2 != 0)
      .max()
      .orElse(-1);
      System.out.println("Maximum odd number is: " +maximumOdd);
   }
}
Salin selepas log masuk

Output

Maximum odd number is: 9	
Salin selepas log masuk

Gunakan kaedah strim(), penapis() dan kurangkan()

  • Memulakan tatasusunan dan gunakan kaedah strim() untuk mencipta strim untuk tatasusunan

  • Gunakan kaedah penapis() dan parameter sebagai syarat untuk menapis strim untuk menapis nombor ganjil daripada tatasusunan.

  • Gunakan kaedah reduce() untuk mencari nombor ganjil terbesar

  • Gunakan operator ternary untuk mencetak nombor ganjil terbesar, atau -1 jika tiada nombor ganjil.

Contoh

Dalam contoh ini, kita mula-mula memulakan tatasusunan. Kemudian kami menggunakan kaedah "stream()" untuk menukar tatasusunan kepada strim, kemudian menggunakan kaedah "filter()" pada strim untuk menapis nombor ganjil yang terdapat dalam strim, dan pada strim yang terhasil kami menggunakan pengurangan () kaedah untuk mencari semua nombor ganjil dalam aliran nilai maksimum. Jika tiada nombor ganjil dalam strim, nombor MaximumOdd mengandungi Integer.MIN_VALUE. Kami kemudian menggunakan operasi ternary ‘?’ dan semak sama ada pembolehubah ‘maximumOdd’ mengandungi Integer.MIN_VALUE. Jika ia mengandungi Integer.MIN_VALUE, maka kami mencetak -1, jika tidak, kami mencetak nilai yang disimpan dalam pembolehubah "maximumOdd".

import java.util.*;
public class Main {
   public static void main(String[] args) {
      int[] array = {1, 7, 2, 3, 9, 5};
      int maximumOdd = Arrays.stream(array)
      .filter(n -> n % 2 != 0)
      .reduce(Integer.MIN_VALUE, Integer::max);
      System.out.println("Maximum odd number in the given array is   " + (maximumOdd != Integer.MIN_VALUE ? maximumOdd : -1));
   }
}
Salin selepas log masuk

Output

Maximum odd number in the given array is   9
Salin selepas log masuk
Jadi, dalam artikel ini, kami telah membincangkan cara mencari nombor ganjil maksimum dalam tatasusunan menggunakan kaedah berbeza menggunakan aliran dan penapis dalam Java.

Atas ialah kandungan terperinci Program Java untuk mencari nombor ganjil maksimum dalam tatasusunan menggunakan aliran dan penapis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:tutorialspoint.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan