Junior
Ποιες τυπικές λειτουργίες για εργασία με συλλογές στο Kotlin γνωρίζετε;
sobes.tech AI
Απάντηση από AI
Οι προεπιλεγμένες λειτουργίες για εργασία με συλλογές στο Kotlin είναι πολύ ποικίλες και επιτρέπουν την εκτέλεση πολλών λειτουργιών:
Μετασχηματιστικές λειτουργίες:
map: Μετατρέπει κάθε στοιχείο της συλλογής σε ένα νέο στοιχείο και επιστρέφει μια νέα συλλογή με τα αποτελέσματα.flatMap: Μετατρέπει κάθε στοιχείο σε μια συλλογή στοιχείων και ενώνει όλες τις αποτελεσματικές συλλογές σε μία.zip: Δημιουργεί ζεύγη από στοιχεία δύο συλλογών με ίσους δείκτες.unzip: Διαχωρίζει μια συλλογή ζευγών σε δύο συλλογές.
Λειτουργίες φιλτραρίσματος:
filter: Επιστρέφει μια συλλογή που περιέχει μόνο στοιχεία που ικανοποιούν ένα δοσμένο προ predicate.filterNotNull: Επιστρέφει μια νέα συλλογή που περιέχει μόνο μη-null στοιχεία.filterIsInstance: Επιστρέφει μια συλλογή που περιέχει μόνο στοιχεία ενός συγκεκριμένου τύπου.distinct: Επιστρέφει μια συλλογή με μοναδικά στοιχεία.drop: Παραλείπει τα πρώτα N στοιχεία και επιστρέφει τα υπόλοιπα.dropLast: Παραλείπει τα τελευταία N στοιχεία.take: Παίρνει τα πρώτα N στοιχεία.takeLast: Παίρνει τα τελευταία N στοιχεία.
Εντολές ταξινόμησης:
sorted: Επιστρέφει μια ταξινομημένη συλλογή με την φυσική σειρά.sortedBy: Ταξινομεί τη συλλογή με βάση το αποτέλεσμα ενός δοσμένου επιλεγέα για κάθε στοιχείο.sortedDescending: Ταξινομεί σε φθίνουσα φυσική σειρά.sortedByDescending: Ταξινομεί σε φθίνουσα σειρά με βάση το αποτέλεσμα του επιλεγέα.reversed: Αντιστρέφει τη σειρά των στοιχείων.
Εντολές συσσώρευσης (αναγωγής):
fold: Συρρικνώνει τη συλλογή σε μια τιμή εφαρμόζοντας μια λειτουργία σε έναν συσσωρευτή και κάθε στοιχείο, με μια αρχική τιμή.reduce: Συρρικνώνει τη συλλογή σε μια τιμή, χρησιμοποιώντας το πρώτο στοιχείο ως αρχική.sum: Υπολογίζει το άθροισμα όλων των αριθμητικών στοιχείων.average: Υπολογίζει τον μέσο όρο των αριθμητικών στοιχείων.count: Επιστρέφει τον αριθμό των στοιχείων.maxOrNull: Επιστρέφει το μέγιστο στοιχείο ή null αν η συλλογή είναι κενή.minOrNull: Το ελάχιστο στοιχείο ή null.maxByOrNull: Το στοιχείο για το οποίο η επιλογέας επιστρέφει τη μέγιστη τιμή.minByOrNull: Το στοιχείο για το οποίο η επιλογέας επιστρέφει τη ελάχιστη τιμή.
Εντολές αναζήτησης στοιχείων:
find: Επιστρέφει το πρώτο στοιχείο που ικανοποιεί το δοσμένο προ predicate ή null.findLast: Το τελευταίο στοιχείο που ικανοποιεί το predicate.first: Το πρώτο στοιχείο.last: Το τελευταίο στοιχείο.firstOrNull: Το πρώτο στοιχείο ή null.lastOrNull: Το τελευταίο στοιχείο ή null.indexOf: Ο δείκτης της πρώτης εμφάνισης ενός στοιχείου.lastIndexOf: Ο δείκτης της τελευταίας εμφάνισης.single: Επιστρέφει το μόνο στοιχείο αν υπάρχει, διαφορετικά ρίχνει εξαίρεση.singleOrNull: Το μόνο στοιχείο ή null.
Εντολές για τμήματα της συλλογής:
slice: Επιστρέφει μια λίστα στοιχείων βάσει δοσμένων δεικτών.chunked: Χωρίζει τη συλλογή σε λίστες μεγέθους που ορίζεται.windowed: Δημιουργεί παράθυρα με ολίσθηση μεγέθους που ορίζεται.
Ομαδοποιητικές λειτουργίες:
groupBy: Ομαδοποιεί στοιχεία βάσει κλειδιού, επιστρέφοντας ένα Map.groupingBy: Επιστρέφει ένα αντικείμενο Grouping για lazy συλλογές.
Ελέγχους:
all: Ελέγχει αν όλα τα στοιχεία ικανοποιούν το predicate.any: Αν τουλάχιστον ένα στοιχείο ικανοποιεί.none: Κανένα στοιχείο δεν ικανοποιεί.contains: Περιέχει ένα συγκεκριμένο στοιχείο;isEmpty: Είναι κενή;isNotEmpty: Δεν είναι κενή;
Αυτά είναι μόνο μερικές από τις προεπιλεγμένες λειτουργίες που διατίθενται για εργασία με συλλογές στο Kotlin. Πολλές από αυτές έχουν υπερφόρτωση για διαφορετικούς τύπους συλλογών και παραμέτρους.
Παράδειγμα χρήσης map:
// Λίστα αριθμών
val numbers = listOf(1, 2, 3, 4, 5)
// Μετατροπή κάθε αριθμού στο τετράγωνό του
val squares = numbers.map { it * it }
// squares: [1, 4, 9, 16, 25]
Παράδειγμα χρήσης filter:
// Λίστα συμβολοσειρών
val fruits = listOf("apple", "banana", "cherry", "date")
// Φιλτράρισμα με βάση μήκος μεγαλύτερο από 5
val longFruits = fruits.filter { it.length > 5 }
// longFruits: [banana, cherry]