Rumah  >  Artikel  >  Java  >  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
WBOYke hadapan
2023-09-09 19:49:021284semak imbas

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

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

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)	

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

treamobject.filter(condition)	

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

Streamobject.reduce(initial value, binary operation)	

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);
   }
}

Output

Maximum odd number is: 9	

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));
   }
}

Output

Maximum odd number in the given array is   9

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!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam