Mảng trong Java – cách xác định mảng trong java

Cổng thông tin Khoa học Máy tính dành cho những người yêu thích máy tính. Nó bao gồm các bài báo về khoa học máy tính và lập trình được viết tốt, được tư duy tốt và được giải thích tốt, các câu đố và thực hành / lập trình cạnh tranh / các câu hỏi phỏng vấn công ty.

Bạn đang xem : cách xác định mảng trong java

Mảng trong Java là một nhóm các biến kiểu giống nhau được tham chiếu bởi một tên thông thường. Mảng trong Java hoạt động khác với trong C / C ++. Sau đây là một số điểm quan trọng về mảng Java.

  • Trong Java, tất cả các mảng đều được cấp phát động. (thảo luận bên dưới)
  • Mảng được lưu trữ trong bộ nhớ lây nhiễm [các vị trí bộ nhớ liên tiếp].
  • Vì mảng là các đối tượng trong Java nên chúng ta có thể tìm độ dài của chúng bằng thuộc tính đối tượng. Điều này khác với C / C ++, nơi chúng tôi tìm độ dài bằng cách sử dụng sizeof.
  • Một biến mảng Java cũng có thể được khai báo giống như các biến khác với [] sau kiểu dữ liệu.
  • Các biến trong mảng được sắp xếp theo thứ tự và mỗi mảng có chỉ số bắt đầu từ 0.
  • Mảng Java cũng có thể được sử dụng làm trường tĩnh, biến cục bộ hoặc tham số phương thức.
  • kích thước của một mảng phải được chỉ định bằng giá trị int hoặc giá trị ngắn và không dài.
  • Lớp cha trực tiếp của một loại mảng là Đối tượng .
  • Mọi loại mảng đều triển khai các giao diện Có thể sao chép và java.io.Serializable .
  • Việc lưu trữ mảng này giúp chúng tôi truy cập ngẫu nhiên các phần tử của mảng [Hỗ trợ truy cập ngẫu nhiên].
  • Không thể thay đổi kích thước của mảng (sau khi khởi tạo). Tuy nhiên, một tham chiếu mảng có thể được thực hiện để trỏ đến một mảng khác.

Một mảng có thể chứa các tham chiếu nguyên thủy (int, char, v.v.) và đối tượng (hoặc không nguyên thủy) của một lớp tùy thuộc vào định nghĩa của mảng. Trong trường hợp kiểu dữ liệu nguyên thủy, các giá trị thực được lưu trữ trong các vị trí bộ nhớ liền kề. Trong trường hợp đối tượng lớp, các đối tượng thực tế được lưu trữ trong một phân đoạn heap .

Mảng

Tạo, khởi tạo và truy cập Mảng

Mảng một chiều:

Dạng chung của mảng một chiều khai báo là

 type var-name [];
HOẶC
type [] var-name; 

Một khai báo mảng có hai thành phần: kiểu và tên. khai báo kiểu phần tử của mảng. Kiểu phần tử xác định kiểu dữ liệu của mỗi phần tử bao gồm mảng. Giống như một mảng các số nguyên, chúng ta cũng có thể tạo một mảng các kiểu dữ liệu nguyên thủy khác như char, float, double, v.v. hoặc các kiểu dữ liệu do người dùng định nghĩa (các đối tượng của một lớp). Do đó, kiểu phần tử của mảng xác định kiểu dữ liệu mà mảng sẽ giữ.

Ví dụ:

 // cả hai đều là khai báo hợp lệ
int intArray [];
hoặc int [] intArray;

byte byteArray [];
quần đùi ngắnArray [];
boolean booleanArray [];
long longArray [];
float floatArray [];
double doubleArray [];
char charArray [];

// một mảng các tham chiếu đến các đối tượng của
// lớp MyClass (một lớp được tạo bởi
// người sử dụng)
MyClass myClassArray [];

Đối tượng [] ao, // mảng đối tượng
Bộ sưu tập [] ca; // mảng Bộ sưu tập
                     // thuộc loại không xác định 

Mặc dù khai báo đầu tiên thiết lập rằng intArray là một biến mảng, không có mảng thực tế nào tồn tại . Nó chỉ cho trình biên dịch biết rằng biến này (intArray) sẽ chứa một mảng kiểu số nguyên. Để liên kết intArray với một mảng thực tế gồm các số nguyên, bạn phải cấp phát một mảng bằng cách sử dụng new và gán nó cho intArray.

Java-Foundation-Course

Khởi tạo mảng trong Java

Khi một mảng được khai báo, chỉ một tham chiếu của một mảng được tạo. Để tạo hoặc cấp bộ nhớ cho mảng, bạn tạo một mảng như sau: Dạng chung của nó áp dụng cho mảng một chiều sẽ xuất hiện như sau:

 var-name = new type [size]; < / pre> 

Ở đây, chỉ định kiểu dữ liệu được cấp phát, xác định số phần tử trong mảng và là tên của biến mảng được liên kết với mảng. Để sử dụng để cấp phát một mảng, bạn phải chỉ định loại và số phần tử để cấp phát.

Ví dụ:

 int intArray []; // khai báo mảng
intArray = new int [20]; // cấp phát bộ nhớ cho mảng 

HOẶC

 int [] intArray = new int [20]; // kết hợp cả hai câu lệnh trong một 

Lưu ý:

  1. Các phần tử trong mảng được cấp phát bởi sẽ tự động được khởi tạo thành không (đối với kiểu số), false (đối với boolean) hoặc null > (đối với các loại tham khảo). Hãy tham khảo giá trị mảng mặc định trong Java .
  2. Lấy một mảng là một quá trình gồm hai bước. Đầu tiên, bạn phải khai báo một biến của kiểu mảng mong muốn. Thứ hai, bạn phải cấp phát bộ nhớ để giữ mảng, sử dụng new và gán nó cho biến mảng. Do đó, trong Java , tất cả các mảng đều được cấp phát động.

Array Literal

Trong trường hợp kích thước của mảng và các biến của mảng đã được biết trước, có thể sử dụng các ký tự của mảng.

 int [] intArray = new int [] {1,2,3,4,5,6,7,8,9,10};
 // Khai báo mảng theo nghĩa đen 
  • Độ dài của mảng này xác định độ dài của mảng đã tạo.
  • Mới nhất không cần viết phần int [] mới các phiên bản của Java.

Truy cập các phần tử mảng Java bằng cách sử dụng cho Vòng lặp

Mỗi phần tử trong mảng được truy cập thông qua chỉ mục của nó. Chỉ mục bắt đầu bằng 0 và kết thúc bằng (tổng kích thước mảng) -1. Tất cả các phần tử của mảng có thể được truy cập bằng cách sử dụng Java for Loop.

 // truy cập các phần tử của mảng được chỉ định
for (int i = 0; i & lt; arr.length; i ++)
  System.out.println ("Phần tử tại chỉ mục" + i +
                                ":" + arr [i]); 

Triển khai:

Java

class GFG {

public < code class = "keyword"> static void main (String [] args)

{

int [] arr;

arr = new int [ 5 ];

arr [ 0 ] = 10 ;

arr [ 1 ] = 20 ; < / code>

arr [ 2 ] = 30 ;

arr [ 3 ] = 40 ;

arr [ 4 ] = 50 ;

< / code> cho ( int i = 0 ; tôi & lt; arr.length; i ++)

System.out.println ( "Phần tử tại chỉ mục" + i

+ ":" + arr [ i]);

} < / p>

}

 
 

Output

 Phần tử ở chỉ mục 0: 10
Phần tử ở chỉ số 1: 20
Phần tử ở chỉ số 2: 30
Phần tử ở chỉ số 3: 40
Phần tử ở chỉ số 4: 50 

Độ phức tạp về thời gian: O (n)
Không gian phụ trợ: O (1)

< p> Bạn cũng có thể truy cập các mảng java bằng cách sử dụng cho mỗi vòng lặp .

Sơ đồ trống - Trang 1 (10)

Mảng đối tượng

Mảng đối tượng được tạo giống như mảng các mục dữ liệu kiểu nguyên thủy theo cách sau.

 Student [] arr = new Student [7]; // student là một lớp do người dùng định nghĩa 

studentArray chứa bảy vùng nhớ, mỗi vùng có kích thước bằng lớp học sinh, trong đó địa chỉ của bảy đối tượng Student có thể được lưu trữ. Các đối tượng Student phải được khởi tạo bằng cách sử dụng hàm tạo của lớp Student và các tham chiếu của chúng phải được gán cho các phần tử mảng theo cách sau.

 Student [] arr = new Student [5]; 

Ví dụ

Java

class Sinh viên {

public int roll_no;

public Tên chuỗi;

Sinh viên ( int roll_no, Tên chuỗi)

{

this . Roll_no = roll_no;

this . name = name;

}

}

public class GFG {

public static void main (String [] args)

{

Student [] arr;

arr = new Sinh viên [ 5 ];

arr [ 0 ] = new Sinh viên ( 1 , "aman" );

< / code>

arr [ 1 ] = new Sinh viên ( < code class = "value"> 2 , "vaibhav" );

arr [ 2 ] = new Sinh viên ( 3 , " shikar " );

arr [ 3 ] = new Sinh viên ( 4 , "dharmesh" );

< mã class = "trơn"> arr [ 4 ] = mới Sinh viên ( 5 , "mohit" );

cho ( int i = 0 ; tôi & lt; arr.length; i ++)

System.out.println ( "Phần tử tại" + i + ":"

+ arr [i] .roll_no + ""

+ arr [i ] .name);

}

}

 
 

Output

 Phần tử lúc 0: 1 sáng
Phần tử ở vaibhav 1: 2
Nguyên tố ở shikar 2: 3
Phần tử ở 3: 4 dharmesh
Phần tử ở 4: 5 mohit 

Độ phức tạp về thời gian: O (n)
Không gian bổ trợ: O (1)

Ví dụ

Một mảng đối tượng cũng được tạo giống như một mảng các mục dữ liệu kiểu nguyên thủy.

 Student [] studentArray; // Không có mảng nào được tạo 
 Student [] studentArray = new Student [5]; // Mảng gồm 5 sinh viên được tạo nhưng không có sinh viên nào trong mảng 

studentArray chứa năm vùng nhớ, mỗi vùng có kích thước của lớp sinh viên trong đó địa chỉ của bảy đối tượng Student có thể được lưu trữ. Các đối tượng Student phải được khởi tạo bằng cách sử dụng hàm tạo của lớp Student và các tham chiếu của chúng phải được gán cho các phần tử mảng theo cách sau.

Java

< / p>

class < / code> Sinh viên

{

public Tên chuỗi;

Sinh viên (Tên chuỗi )

{

this . name = name;

}

< p class = "line number12 index11 alt1"> @ Ghi đè

public String toString () {

< p class = "số dòng 14 chỉ số13 alt1 "> return name;

}

< code class = "trơn">}

public class GFG

{

public static void main (String [] args)

{

Sinh viên [] myStudents = mới Sinh viên [] { new Sinh viên ( "Pháp" ), new Sinh viên ( "sanvi" ), new Sinh viên ( " Rupa " ), new Sinh viên ( " Ajay " )};

cho (Sinh viên m: myStudents) {

System.out.println (m);

}

}

}

< pre class = "output-pre">

 

Output

 Pháp
sanvi
Rupa
Ajay 

Điều gì sẽ xảy ra nếu chúng ta cố gắng truy cập các phần tử bên ngoài kích thước mảng?

JVM ném ArrayIndexOutOfBoundsException để chỉ ra rằng mảng đã được truy cập bằng chỉ mục không hợp lệ . Chỉ số âm hoặc lớn hơn hoặc bằng kích thước của một mảng.

Java

< code class = "keyword"> public class GFG {

public static void main (String [] args)

< / code> {

int [] arr = new int < cá tuyết e class = "trơn"> [ 2 ];

arr [ 0 ] = 10 ;

arr [ 1 ] = 20 ;

< p class = "line number8 index7 alt1"> cho ( < code class = "keyword"> int i = 0 ; i & lt ; arr.length; i ++)

System.out.println (arr [i]);

}

}

 
 

Đầu ra

 10
20 

Mảng đa chiều:

Mảng nhiều chiều là mảng của mảng với mỗi phần tử của mảng giữ tham chiếu của các mảng khác. Chúng còn được gọi là Mảng răng cưa . Mảng nhiều chiều được tạo bằng cách thêm một tập hợp các dấu ngoặc vuông ([]) cho mỗi chiều.

Sơ đồ trống - Trang 1 (13)

 int [] [] intArray = new int [10] [20]; // một mảng hoặc ma trận 2D
int [] [] [] intArray = new int [10] [20] [10]; // mảng 3D 

Ví dụ

Java

< / p>

public class multiDimensional {

public static void main (String args [])

{

int arr [] [ ]

= {{ 2 , 7 , 9 }, { 3 , 6 , 1 }, { < code class = "value"> 7 , 4 , 2 }};

cho ( int i = 0 ; tôi & lt; 3 ; i ++) {

cho ( int j = 0 ; j & lt; 3 ; j ++)

< p class = "line number11 index10 alt2"> System.out.print (arr [i] [j] + < code class = "string"> "" );

System.out.println (); < / code>

}

}

}

 
   Đầu ra  
 2 7 9
3 6 1
7 4 2 

Truyền mảng cho các phương thức

Giống như các biến, chúng ta cũng có thể truyền mảng cho các phương thức. Ví dụ: chương trình dưới đây chuyển mảng sang phương thức để tính tổng các giá trị của mảng.

Java

< / p>

< p class = "line number4 index3 alt1"> public class Kiểm tra {

public static void main (Chuỗi args [])

{

int arr [] = { 3 , 1 , 2 , 5 , 4 };

sum (arr);

}

public static void < / p>

{

int sum = 0 ; < / p>

cho ( int i = 0 ; tôi & lt; arr.length; i ++)

sum + = arr [i];

System.out.println ( "tổng các giá trị mảng:" + sum);

}

}

 
 

Output

 tổng các giá trị mảng: 15  

Độ phức tạp về thời gian: O (n)

Không gian phụ trợ: O (1)

Trả về mảng từ các phương thức

Như thường lệ, một phương thức cũng có thể trả về một mảng. Ví dụ, chương trình dưới đây trả về một mảng từ phương thức.

Java


< / p>



class < / code> Kiểm tra {

public static void main (String args []) < / p>

{

int arr [] = m1 ();

cho ( int i = 0 ; i & lt; arr.length; i ++)

< p class = "line number11 index10 alt2"> System.out.print (arr [i] + "" ) ;

}

public static int [ ] m1 ()

{ < / p>

return new int [] { 1 , 2 , 3 };

}

}

 
 

Output

 1 2 3 

< p> Độ phức tạp về thời gian: O (n),
Không gian phụ trợ: O (1)

Đối tượng lớp cho mảng

Mỗi mảng có một đối tượng Lớp được liên kết, được chia sẻ với tất cả các mảng khác có cùng kiểu thành phần.

Java

< / p>

class < / code> Kiểm tra {

public static void main (Chuỗi args []) < / code>

{

int intArray [] = new int [ 3 ];

byte byteArray [] = new byte [ 3 ];

< code class = "undefined space"> short shortsArray [] = new short [ 3 ];

String [] strArray = new Chuỗi [ 3 ];

System.out.println (intArray.getClass ()); < / p>

System.out.println (

< p class = "line number16 index15 alt1"> intArray.getClass (). getSuperclass ());

System.out.println (byteArray.getClass ()); < / p>

System.out.println (shortsArray.getClass ());

System.out.println (strArray.getClass ()) ;

}

}

 
 

Đầu ra

 class [ Tôi
lớp java.lang.Object
lớp [B
lớp [S
class [Ljava.lang.String; 

Giải thích:

  1. Chuỗi “[I” là chữ ký kiểu thời gian chạy cho lớp đối tượng “mảng với kiểu thành phần.”
  2. Siêu lớp trực tiếp duy nhất của kiểu mảng là java.lang.Object .
  3. Chuỗi “[B ”Là chữ ký kiểu thời gian chạy cho đối tượng lớp“ mảng có kiểu thành phần. ”
  4. Chuỗi“ [S ”là chữ ký kiểu thời gian chạy cho đối tượng lớp“ mảng có kiểu thành phần ”.
  5. Chuỗi “[L” là chữ ký kiểu thời gian chạy cho đối tượng lớp “mảng có kiểu thành phần của Lớp”. Sau đó, tên lớp được theo sau.

Thành viên của mảng

Bây giờ, như bạn đã biết rằng mảng là các đối tượng của một lớp và lớp cha trực tiếp của mảng là một lớp Đối tượng . Các thành viên của kiểu mảng là tất cả các thành phần sau:

  • Trường cuối cùng chung, chứa số lượng thành phần của mảng. Độ dài có thể là số dương hoặc bằng không.
  • Tất cả các thành viên được kế thừa từ Đối tượng lớp; phương thức duy nhất của Object không được kế thừa là phương thức clone của nó.
  • Phương thức public ghi đè phương thức clone trong class Object và không có ngoại lệ đã kiểm tra nào .

Kiểu mảng và kiểu phần tử được phép của chúng

Kiểu mảngLoại phần tử được phépMảng kiểu trực quanBất kỳ kiểu nào có thể được thăng cấp ngầm thành kiểu đã khai báo. Kiểu đối tượng Mảng kiểu được khai báo hoặc là đối tượng con đối tượng lớp. Đối tượng lớp con của nó được phép sử dụng Đối tượng lớp con của lớp ArraysIts. , “bản sao sâu” được thực hiện với mảng mới chứa bản sao của các phần tử của mảng ban đầu thay vì tham chiếu.

Java

class Kiểm tra {

public static void main (Chuỗi args [])

{

int intArray [] = { 1 , 2 , 3 };

int cloneArray [] = intArray.clone ();

System.out.println ( intArray == cloneArray);

cho ( int i = 0 ; i & lt; cloneArray.length; i ++) {

Hệ thống .out.print (cloneArray [i] + "" );

}

}

}

 
 

Đầu ra

 false
1 2 3 

Sơ đồ trống - Trang 1 (11)

Bản sao của mảng đa chiều (như Object [] []) là một" bản sao cạn ", tuy nhiên, có nghĩa là nó chỉ tạo ra một một mảng mới với mỗi mảng phần tử là một tham chiếu đến một mảng phần tử ban đầu, nhưng các mảng con được chia sẻ.

Java

< / p>

class < / code> Kiểm tra {

public static void main (Chuỗi args []) < / code>

{

int intArray [] [] = { { 1 , 2 , < code class = "value"> 3 }, { 4 , < / code> 5 }};

int cloneArray [] [] = intArray.clone ();

System.out.println (intArray == cloneArray);

System.out.println (intArray [ 0 ] == cloneArray [ 0 ]);

< p class = "line number17 index16 alt2"> System.out.println (intArray [ 1 ] == cloneArray [ 1 ]);

}

}

 
 

Đầu ra

 false
thật
true 

Sơ đồ trống - Trang 1 (12)

Các bài viết liên quan:

Bài viết này được đóng góp bởi Nitsdheerendra và Gaurav Miglani . Nếu bạn thích GeeksforGeeks và muốn đóng góp, bạn cũng có thể viết một bài báo bằng cách sử dụng write.geeksforgeeks.org hoặc gửi bài viết của bạn qua thư tới review-team@geeksforgeeks.org. Xem bài viết của bạn xuất hiện trên trang chính của GeeksforGeeks và trợ giúp những Geeks khác.

Ghi chú cá nhân của tôi


Xem thêm những thông tin liên quan đến chủ đề cách xác định mảng trong java

Java Arrays Tutorial

alt

  • Tác giả: Alex Lee
  • Ngày đăng: 2018-10-11
  • Đánh giá: 4 ⭐ ( 5374 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Full Java Course: https://course.alexlorenlee.com/courses/learn-java-fast
    Get my favorite programming audiobook for free! https://audibletrial.com/alexleefree
    Free tips: https://bit.ly/3vuD81C

    Springboard Software Engineering BootCamp (Use my code ALEXLEE for $1000 USD off): https://bit.ly/3EZp0As
    If you're new to programming, I recommend solving challenges on Edabit: https://edabit.com/?ref=alexlee
    20% off Brain.fm (awesome): https://www.brain.fm/alexlee20
    20% off Brilliant subscription: https://brilliant.sjv.io/alexlee20
    Java Certificate: https://imp.i384100.net/CourseraJava
    Tabnine autocomplete: https://bit.ly/3ilJLMQ
    Get SERVICE HOURS as an online tutor or FREE ONLINE TUTORING for K-8 students: https://connectmego.org/

    Store: https://qaya.store/alex-lee

    This Java arrays tutorial will get your code working quickly! In this java tutorial, I show you how to use arrays in java.

    Java arrays can be a little tricky if you're new to programming, but fear not! They aren't too bad 🙂 If you followed along, congrats! You learned-by-doing!

    Source Code: https://github.com/alexlorenlee/JavaTutorialCode/blob/master/Arrays/ZombieKiller.java

    I hope you enjoyed this java arrays tutorial! I like to have a nice mix of tutorials and actual projects for you all 🙂

    Do you want to learn how to code from scratch, in Java? Check out my Java Tutorial For Beginners: https://youtu.be/woJb2hAfkO0

    How'd you customize your zombie killer array?

    Disclosure: Springboard, Brilliant, Audible, Brain.fm, Edabit and Tabnine links provided are linked to my affiliate accounts & support the channel.

    ~
    https://www.instagram.com/alexlorenlee

    Alex Lee

Mảng (Array) trong Java

  • Tác giả: vietjack.com
  • Đánh giá: 3 ⭐ ( 1000 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mảng (Array) trong Java - Học Java cơ bản và nâng cao cho người mới học về Ngôn ngữ hướng đối tượng, Ví dụ Java, Phương thức, Ghi đè, Tính kế thừa, Tính trừu tượng, Tính đa hình, Overriding, Inheritance, Polymorphism, Interfaces, Packages, Collections, Lập trình mạng, Đa luồng, Tuần tự hóa, Networking, Multithreading, Generics, Multimedia, Serialization, GUI.

Mảng (Array) trong Java

  • Tác giả: quachquynh.com
  • Đánh giá: 5 ⭐ ( 1919 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

[Tự học Java] Mảng trong Java

  • Tác giả: cafedev.vn
  • Đánh giá: 5 ⭐ ( 4946 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mảng là một cấu trúc cơ bản trong Java cho phép bạn lưu trữ và truy cập tới nhiều giá trị một cách thuận tiện.

Mảng (Array), cách sử dụng mảng trong java

  • Tác giả: thaynhuom.edu.vn
  • Đánh giá: 4 ⭐ ( 7122 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Một trong những giải thuật liên quan đến dãy số, sắp xếp, lưu trữ danh sách,... thì không thể không nhắc đến mảng . . .

Hướng dẫn về mảng trong Java

  • Tác giả: helpex.vn
  • Đánh giá: 4 ⭐ ( 6700 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Này các bạn! Trong khi duyệt qua các diễn đàn khác nhau, tôi thấy rằng nhiều người không nắm bắt được khái niệm về mảng trong Java. Vì vậy, tôi muốn viết một bài báo về mảng trong Java để…

Khám phá về mảng trong Java dành cho người mới

  • Tác giả: box.edu.vn
  • Đánh giá: 4 ⭐ ( 4330 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Mảng trong Java là vùng chứa một chuỗi giá trị của các kiểu dữ liệu tương ứng, độ dài mảng xác định tại thời điểm khai báo mảng

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  Cách thêm phần tử vào danh sách bằng Python - thêm vào danh sách