java array declare
Αυτό το σε βάθος εκπαιδευτικό πρόγραμμα εξηγεί διάφορους τρόπους δήλωσης, δημιουργίας και αρχικοποίησης μιας νέας σειράς με τιμές σε Java με τη βοήθεια απλών παραδειγμάτων κώδικα:
Στο προηγούμενο σεμινάριό μας, συζητήσαμε τα βασικά των συστοιχιών στην Java μαζί με τις διαφορετικές έννοιες που σχετίζονται με τους πίνακες, τις οποίες θα μάθουμε λεπτομερώς σε αυτήν τη σειρά εκμάθησης.
Το πρώτο και κύριο βήμα με πίνακες είναι η δημιουργία τους. Πρέπει να γνωρίζετε τι είδους στοιχεία και πόσα στοιχεία πρόκειται να αποθηκεύσετε σε πίνακες. Μόλις δηλώσετε έναν πίνακα, ίσως θελήσετε να τους προετοιμάσετε παρέχοντας μερικές αρχικές τιμές και υπάρχουν διάφορες μέθοδοι για να το κάνετε αυτό.
Έτσι, σε αυτό το σεμινάριο, θα επικεντρωθούμε στη δημιουργία και την προετοιμασία των πινάκων πριν προχωρήσουμε σε άλλες έννοιες.
Τι θα μάθετε:
- Πώς να δηλώσετε μια σειρά στην Java;
- Instantiate και Initialize A Java Array
- Αρχικοποίηση και πρόσβαση στα στοιχεία της σειράς
- Συχνές Ερωτήσεις
- συμπέρασμα
- Συνιστώμενη ανάγνωση
Πώς να δηλώσετε μια σειρά στην Java;
Στην Java, ένας μονοδιάστατος πίνακας δηλώνεται με έναν από τους ακόλουθους τρόπους:
data_type() array_name; {or} data_type array_name(); {or} data_type ()array_name;
Εδώ το «data_type» καθορίζει τον τύπο δεδομένων που θα διατηρήσει ο πίνακας. Ο «τύπος_ δεδομένων» μπορεί να είναι πρωτόγονος τύπος δεδομένων ή οποιοσδήποτε παράγωγος τύπος.
Για παράδειγμα, ένας πίνακας Μυράι του ακέραιου τύπου δηλώνεται ως εξής:
int () myarray;
Ή
int () myarray;
Ή
int myarray ();
Αυτό σημαίνει ότι ο πίνακας myarray θα διατηρεί τα στοιχεία του τύπου δεδομένων int.
Σημειώστε ότι καθώς οι πίνακες στην Java κατανέμονται δυναμικά, δεν καθορίζουμε καμία διάσταση ή μέγεθος του πίνακα με τη δήλωση. Η παραπάνω δήλωση λέει στον μεταγλωττιστή ότι υπάρχει μια μεταβλητή πίνακα «myarray» τύπου int που θα αποθηκεύει τις τιμές ακέραιου τύπου σε αυτήν.
Ο μεταγλωττιστής δεν γνωρίζει το μέγεθος ή τις πραγματικές τιμές που είναι αποθηκευμένες σε έναν πίνακα. Θα ξέρει ότι μόνο αφού αρχικοποιήσουμε τον πίνακα.
Instantiate και Initialize A Java Array
Έχουμε ήδη δηλώσει έναν πίνακα στην προηγούμενη ενότητα. Αλλά αυτό είναι απλώς μια αναφορά. Για να χρησιμοποιήσετε την παραπάνω αναφερόμενη μεταβλητή πίνακα, πρέπει να την δημιουργήσετε και στη συνέχεια να παράσχετε τιμές για αυτήν. Ο πίνακας δημιουργείται με τη χρήση «νέου».
Η γενική σύνταξη του instantiating έχει ως εξής:
array_name = new data_type (size);
Στην παραπάνω δήλωση, το array_name είναι το όνομα του πίνακα που δημιουργείται.
data_type=> type of elements the array is going to store size=> the number of elements that will be stored in array
Επομένως, όταν χρησιμοποιείτε νέο με τον πίνακα, εκχωρείτε πραγματικά τον πίνακα με τον τύπο δεδομένων και τον αριθμό των στοιχείων.
Έτσι, ο παραπάνω δηλωμένος πίνακας myarray μπορεί να δημιουργηθεί ως εξής:
το καλύτερο δωρεάν πρόγραμμα λήψης μουσικής για υπολογιστή
myarray = new int(10)
Έτσι, η δημιουργία ενός πίνακα σε Java περιλαμβάνει δύο βήματα όπως φαίνεται παρακάτω:
int() myarray; //declaration myarray = new int(10); //instantiation
Μόλις δημιουργηθεί ο πίνακας, μπορείτε να τον αρχικοποιήσετε με τιμές ως εξής:
myarray(0) = 1; myarray(1) = 3; ….and so on until all elements are initialized.
Η έκφραση στα αγκύλια παραπάνω ονομάζεται ευρετήριο του πίνακα. Το ευρετήριο της συστοιχίας χρησιμοποιείται για την πρόσβαση στην πραγματική τιμή των στοιχείων, δηλ. Ο παραπάνω πίνακας myarray 10 στοιχείων int θα έχει δείκτες από 0 έως 9. Μπορείτε να αποκτήσετε πρόσβαση στο στοιχείο του πίνακα σε μια συγκεκριμένη θέση καθορίζοντας το ευρετήριο πάνω από.
Σημειώστε ότι το ευρετήριο του πίνακα ξεκινά πάντα από το 0. Εναλλακτικά, μπορείτε επίσης να κάνετε την αρχικοποίηση χρησιμοποιώντας έναν βρόχο τον οποίο θα δούμε αργότερα.
Μπορείτε επίσης να χρησιμοποιήσετε κυριολεκτικά τον πίνακα και να αρχικοποιήσετε τον πίνακα κατά την ίδια τη δήλωση όπως φαίνεται παρακάτω:
int() myarray = {1,3,5,7};
Στην παραπάνω δήλωση, το μήκος του πίνακα καθορίζεται από τον αριθμό των στοιχείων. Επίσης, όπως μπορείτε να δείτε, δεν χρειάζεται να χρησιμοποιήσετε το «νέο». Το πιο σημαντικό, η δήλωση, η παρουσίαση και η αρχικοποίηση του πίνακα γίνεται σε μία δήλωση.
Δίνεται παρακάτω ένα απλό παράδειγμα προγραμματισμού της δήλωσης και της αρχικοποίησης του πίνακα.
public class Main { public static void main(String() args) { int() myarray; //declaration myarray = new int(5); //instantiation myarray(0) = 10; //initialization System.out.println('myarray(0) = ' + myarray(0)); //accessing and printing array elements System.out.println('myarray(1) = ' + myarray(1)); int () oddArray = {1,3,5,7}; //initialization with array literal System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); } }
Παραγωγή:
Αυτό το πρόγραμμα έδειξε μια δήλωση πίνακα και την κατάστασή του καθώς και την προετοιμασία. Σημειώστε ότι καθώς έχουμε αρχικοποιήσει μόνο το oουτιμή myarray, η άλλη τιμή myarray (1) που εκτυπώνεται έχει μια προεπιλεγμένη τιμή, δηλ. 0.
Ο δεύτερος πίνακας δείχνει την κυριολεκτική μεταβλητή του πίνακα. Ακόμα κι αν δεν αρχικοποιήσετε τον πίνακα, ο μεταγλωττιστής Java δεν θα δώσει κανένα σφάλμα. Κανονικά, όταν ο πίνακας δεν έχει αρχικοποιηθεί, ο μεταγλωττιστής εκχωρεί προεπιλεγμένες τιμές σε κάθε στοιχείο του πίνακα σύμφωνα με τον τύπο δεδομένων του στοιχείου.
Θα δείξουμε αυτές τις προεπιλεγμένες τιμές χρησιμοποιώντας το ακόλουθο πρόγραμμα.
class Main { public static void main(String() args) { System.out.println('=======Default Values======'); System.out.print('String Array:'); String() array_str = new String(5); //declaration and instantiation for (String str : array_str) //assumes default values System.out.print(str + ' '); System.out.println('
'); System.out.print('Integer array:'); //array only instantiated not initialized int() array_num = new int(5); for (intnum : array_num) System.out.print(num + ' '); System.out.println('
'); System.out.print('Double array:'); //array only instantiated not initialized doublearray_double() = new double(5); for (double dnum : array_double) System.out.print(dnum + ' '); System.out.println('
'); System.out.print('Boolean array:'); //array only instantiated not initialized booleanarray_bool() = new boolean(5); for (booleanbval : array_bool) System.out.print(bval + ' '); System.out.println('
'); } }
Παραγωγή:
c ++ μετατρέψτε char σε συμβολοσειρά
Στο παραπάνω πρόγραμμα, τα έχουμε μόλις δηλώσει και τεκμηριώσει. Δεν τα έχουμε προετοιμάσει σε καμία τιμή. Έτσι, όταν εμφανίζουμε το περιεχόμενο αυτών των συστοιχιών, ανάλογα με τον τύπο δεδομένων του πίνακα, τα στοιχεία θα έχουν διαφορετικές προεπιλεγμένες τιμές.
Όπως φαίνεται παραπάνω, ο πίνακας συμβολοσειρών έχει προεπιλογή ως «null», οι ακέραιες τιμές είναι 0 και οι διπλές τιμές προεπιλεγμένες στο 0,0. Οι δυαδικές τιμές έχουν τις προεπιλεγμένες τιμές τους σε ψευδείς.
Αρχικοποίηση και πρόσβαση στα στοιχεία της σειράς
# 1) Χρήση για βρόχο
Το πρόγραμμα που γράφτηκε παραπάνω χρησιμοποιεί έναν κυριολεκτικό πίνακα για την αρχικοποίηση και τα άλλα στοιχεία πίνακα αρχικοποιούνται ξεχωριστά. Μπορείτε επίσης να χρησιμοποιήσετε το loop για να αρχικοποιήσετε τα στοιχεία του πίνακα.
Έχουμε μετατρέψει τον παραπάνω πίνακα χρησιμοποιώντας κυριολεκτικό πίνακα για να το αρχικοποιήσουμε χρησιμοποιώντας το loop στο παρακάτω πρόγραμμα.
public class Main { public static void main(String() args) { int() oddArray; //declaration oddArray = new int(5); //instantiation for(int i=0;i<5;i++){ oddArray(i) = i+1; //initialization using for loop } System.out.println('oddArray(0) = ' + oddArray(0)); System.out.println('oddArray(1) = ' + oddArray(1)); System.out.println('oddArray(2) = ' + oddArray(2)); System.out.println('oddArray(3) = ' + oddArray(3)); System.out.println('oddArray(4) = ' + oddArray(4)); } }
Παραγωγή:
Εδώ, όπως μπορείτε να δείτε, έχουμε αρχικοποιήσει τον πίνακα χρησιμοποιώντας το loop. Κάθε στοιχείο «i» του πίνακα αρχικοποιείται με τιμή = i + 1. Εκτός από τη χρήση της παραπάνω μεθόδου για την προετοιμασία των συστοιχιών, μπορείτε επίσης να χρησιμοποιήσετε μερικές από τις μεθόδους της κατηγορίας «Arrays» του πακέτου «java.util» για να παρέχετε αρχικές τιμές για τον πίνακα.
Θα συζητήσουμε μερικές από αυτές τις μεθόδους παρακάτω.
# 2) Χρήση του Arrays.fill ()
Η μέθοδος fill () της κατηγορίας 'Arrays' μπορεί να χρησιμοποιηθεί για την προετοιμασία του πίνακα. Όταν προετοιμάζετε έναν πίνακα χρησιμοποιώντας αυτήν τη μέθοδο, ο πίνακας γεμίζει με τις ίδιες τιμές σε όλους τους δείκτες.
Παρακάτω δίνεται το παράδειγμα προγραμματισμού.
import java.util.*; public class Main { public static void main(String() args) { int() oddArray; oddArray = new int(5); //fill the array with value 30 Arrays.fill(oddArray, 30); System.out.println('Array Elements initialised with Arrays.fill:'); for(int i=0;i<5;i++) System.out.println('oddArray(' + i +') = ' + oddArray(i)); } }
Παραγωγή:
Στο παραπάνω πρόγραμμα, έχουμε δώσει 30 ως την τιμή που πρέπει να συμπληρωθεί για τον πίνακα. Η έξοδος δείχνει ότι όλα τα στοιχεία του πίνακα έχουν τιμή 30.
# 3) Χρήση του Arrays.copyOf ()
Χρησιμοποιώντας τη μέθοδο «copyOf ()», χρησιμοποιούμε έναν πίνακα προέλευσης και στη συνέχεια αντιγράφουμε τις τιμές του σε έναν νέο πίνακα. Μπορείτε να καθορίσετε πόσες τιμές θα αντιγραφούν και στη συνέχεια τα υπόλοιπα στοιχεία του πίνακα θα έχουν προεπιλεγμένες τιμές.
Ελέγξτε το ακόλουθο πρόγραμμα.
import java.util.*; public class Main { public static void main(String() args) { int evenArray() = { 2,4,6,8,10 }; //copy contents of evenArray to copyof_Array int() copyof_Array = Arrays.copyOf(evenArray,5); System.out.println('Array Elements initialised with Arrays.copyOf:'); //print the array elements for(int i=0;i<5;i++) System.out.println('copyof_Array(' + i +') = ' + copyof_Array(i)); } }
Παραγωγή:
Σε αυτό το πρόγραμμα, χρησιμοποιούμε έναν πίνακα προέλευσης που ονομάζεται «evenArray». Χρησιμοποιώντας τη μέθοδο copyOf έχουμε αντιγράψει όλα τα στοιχεία του evenArray στο νέο πίνακα. Στην έξοδο, προβάλλουμε τα περιεχόμενα της νέας συστοιχίας που είναι ίδια με το evenArray.
Εκτός από τις παραπάνω δύο μεθόδους, μόλις συζητήσαμε ότι υπάρχουν περισσότερες μέθοδοι όπως η μέθοδος setAll () της κατηγορίας Arrays και η μέθοδος clone () της ArrayUtils που μπορούν να χρησιμοποιηθούν για την προετοιμασία των συστοιχιών. Θα ακολουθήσουμε αυτές τις μεθόδους αργότερα σε αυτήν τη σειρά εκμάθησης στα αντίστοιχα θέματα.
Συχνές Ερωτήσεις
Q # 1) Μπορούμε να δηλώσουμε μια σειρά χωρίς μέγεθος;
Απάντηση: Όχι. Δεν είναι δυνατό να δηλώσετε έναν πίνακα χωρίς να καθορίσετε το μέγεθος. Εάν θέλετε να το κάνετε αυτό, τότε μπορείτε να χρησιμοποιήσετε το ArrayList που είναι δυναμικό στη φύση.
Q # 2) Έχει οριστεί το μέγεθος της σειράς στην Java;
Απάντηση: Ναί. Οι πίνακες είναι στατικοί στην Java και δηλώνετε έναν πίνακα με καθορισμένο μέγεθος. Μόλις καθοριστεί αυτό το μέγεθος, δεν μπορείτε να το αλλάξετε ξανά.
Q # 3) Είναι πάντα απαραίτητο να χρησιμοποιείτε νέα κατά την προετοιμασία των συστοιχιών;
Απάντηση: Όχι. Οι πίνακες μπορούν να αρχικοποιηθούν χρησιμοποιώντας νέες ή εκχωρώντας τιμές διαχωρισμένες με κόμμα που περικλείονται σε σγουρά τιράντες.
Έτσι, όταν αρχικοποιούμε έναν πίνακα χρησιμοποιώντας Array κυριολεκτικά όπως φαίνεται παρακάτω. Δεν χρειάζεται να χρησιμοποιήσετε καινούργια.
int() myarray = {1,2,3,4,5};
Ο αριθμός των παρεχόμενων στοιχείων θα καθορίσει το μέγεθος του πίνακα.
Q # 4) Είναι δυνατή η σειριοποίηση του Java Array;
Απάντηση: Ναί. Εσωτερικά, το Array in Java εφαρμόζει τη σειριοποιήσιμη διεπαφή.
Q # 5) Είναι ένας τύπος δεδομένων Array Primitive;
Απάντηση: Όχι. Στην πραγματικότητα, ένας πίνακας δεν είναι καθόλου τύπος δεδομένων. Ένας πίνακας είναι ένα αντικείμενο κοντέινερ που κρατά τα στοιχεία συγκεκριμένων τύπων δεδομένων σε παρακείμενες θέσεις μνήμης.
συμπέρασμα
Αυτό συνοψίζει τη δημιουργία και την προετοιμασία των συστοιχιών στην Java. Μόλις δημιουργηθούν οι πίνακες και αρχικοποιηθούν σε ορισμένες τιμές, πρέπει να τις εκτυπώσουμε. Για την εκτύπωση των στοιχείων πίνακα, πρέπει να διασχίσουμε ολόκληρο τον πίνακα και τα στοιχεία εκτύπωσης.
Στο επόμενο σεμινάριό μας θα εξετάσουμε μερικές από τις μεθόδους εκτύπωσης στοιχείων πίνακα.
Συνιστώμενη ανάγνωση
- Java Interface και Abstract Class Tutorial με παραδείγματα
- Εισαγωγή στη γλώσσα προγραμματισμού Java - Video Tutorial
- Νήματα Java με μεθόδους και κύκλο ζωής
- Εκπαιδευτικό πρόγραμμα JAVA για αρχάριους: 100+ πρακτικά εκπαιδευτικά βίντεο Java
- Εκμάθηση μήκους σειράς Java με παραδείγματα κώδικα
- C # Array: Πώς να δηλώσετε, να ξεκινήσετε και να αποκτήσετε πρόσβαση σε μια σειρά στο C #;
- Java Hello World - Δημιουργήστε το πρώτο σας πρόγραμμα στην Java σήμερα
- Εισαγωγή σε πίνακες Java και σχετικές έννοιες