Σε αυτό το πρόγραμμα, θα μάθετε να ελέγχετε αν ένας πίνακας περιέχει μια δεδομένη τιμή στην Java.
Για να κατανοήσετε αυτό το παράδειγμα, θα πρέπει να γνωρίζετε τις ακόλουθες εφαρμογές προγραμματισμού Java:
- Πίνακες Java
- Τύποι δεδομένων Java (Primitive)
Παράδειγμα 1: Ελέγξτε αν το Int Array περιέχει μια δεδομένη τιμή
public class Contains ( public static void main(String() args) ( int() num = (1, 2, 3, 4, 5); int toFind = 3; boolean found = false; for (int n : num) ( if (n == toFind) ( found = true; break; ) ) if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Παραγωγή
Βρέθηκε 3.
Στο παραπάνω πρόγραμμα, έχουμε μια σειρά από ακέραιους αποθηκευμένους σε μεταβλητό αριθμό. Ομοίως, ο αριθμός που θα βρεθεί αποθηκεύεται στο toFind.
Τώρα, χρησιμοποιούμε έναν για κάθε βρόχο για να επαναλάβουμε όλα τα στοιχεία του αριθμού και να ελέγξουμε μεμονωμένα εάν το toFind είναι ίσο με το n ή όχι.
Εάν ναι, βρήκαμε το εύρημα true
και σπάσαμε από το βρόχο. Εάν όχι, προχωράμε στην επόμενη επανάληψη.
Παράδειγμα 2: Ελέγξτε εάν ένας πίνακας περιέχει δεδομένη τιμή χρησιμοποιώντας το Stream
import java.util.stream.IntStream; public class Contains ( public static void main(String() args) ( int() num = (1, 2, 3, 4, 5); int toFind = 7; boolean found = IntStream.of(num).anyMatch(n -> n == toFind); if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Παραγωγή
Το 7 δεν βρέθηκε.
Στο παραπάνω πρόγραμμα, αντί να χρησιμοποιήσουμε έναν βρόχο για κάθε, μετατρέπουμε τον πίνακα σε έναν IntStream
και χρησιμοποιούμε τη anyMatch()
μέθοδο του.
anyMatch()
Η μέθοδος παίρνει ένα predicate, μια έκφραση ή μια συνάρτηση που επιστρέφει μια δυαδική τιμή. Στην περίπτωσή μας, το κατηγορηματικό συγκρίνει κάθε στοιχείο n στη ροή με toFind και επιστρέφει true
ή false
.
Εάν κάποιο από τα στοιχεία n επιστρέψει true
, το εύρημα έχει ρυθμιστεί true
επίσης.
Παράδειγμα 3: Ελέγξτε εάν ένας πίνακας περιέχει μια δεδομένη τιμή για μη πρωτόγονους τύπους
import java.util.Arrays; public class Contains ( public static void main(String() args) ( String() strings = ("One", "Two", "Three", "Four", "Five"); String toFind = "Four"; boolean found = Arrays.stream(strings).anyMatch(t -> t.equals(toFind)); if(found) System.out.println(toFind + " is found."); else System.out.println(toFind + " is not found."); ) )
Παραγωγή
Βρέθηκαν τέσσερα.
Στο παραπάνω πρόγραμμα, χρησιμοποιήσαμε έναν μη πρωτόγονο τύπο δεδομένων String
και χρησιμοποιήσαμε Arrays
τη stream()
μέθοδο για να τον μετατρέψουμε σε ροή και anyMatch()
να ελέγξουμε αν ο πίνακας περιέχει τη δεδομένη τιμή στο Find.