- KDL []tên_m ng;//nh trên- KDL tên_m ng[] = new KDL[spt];//T o ra m t m ng có spt ph n t - KDL tên_m ng[] = new KDL[spt];//T o ra m t m ng có spt ph n t Trong cú pháp trên thì: Ø KDL là m t ki u d li u b t k nh : ki u nguyên th y, ki u i t ng… nó xác nh ki u d li u c a t ng ph n t c a m ng. Ø Spt là s ph n t c a m ng. Chú ý: Ø M ng trong Java là m t i t ng
Ø C ng nh các i t ng khác, m ng ph i c t o ra b ng toán t new nh sau:
Tên_m ng=new KDL[spt];
Ø Khi m ng c t o ra thì m i ph n t c a m ng s nh n m t giá tr m c nh, quy t c kh i t o giá tr cho các ph n t c a m ng c ng chính là quy t c kh i u giá tr cho các thu c tính c a i t ng, t c là m i ph n t c a m ng s nh n giá tr :
+ 0 n u KDL là ki u s + ‘\0’ n u KDL là kí t + false n u KDL là boolean
+ null n u KDL là m t l p nào ó.
Ví d 1:Khai báo m t m ng s nguyên g m 100 ph n t Cách 1:
int mangInt[]; //Khai báo m t con tr n m ng các s nguyên mangInt=newint[100]; //T o ra m ng
Cách 2:
int mangInt[]=newint[100];
Ví d 2: Gi s ta có l p SinhVien ã c nh ngh a, hãy khai báo m t m ng g m 100 i t ng c a l p SinhVien
SinhVien arraySinhVien[]=newSinhVien[100];
Chú ý:Lúc này m i ph n t c a m ng arraySinhVien là m t con tr c a l p SinhVien và hi n gi m i ph n t c a m ng ang tr n giá tr null. kh i t o t ng ph n t c a m ng ta ph i làm nh sau:
arraySinhVien[0]=newSinhVien(“sv01”, “Nguy n V n An”, “H ng Yên”); arraySinhVien[1]=newSinhVien(“sv02”, “Nguy n Th Bình”, “B c Giang”); ….
arraySinhVien[99]=newSinhVien(“sv100”, “ ào Th M n”, “Hà Nam”);
Ngoài cách khai báo trên Java còn cho phép ta k t h p c khai báo và kh i gán các ph n t c a m ng theo cách sau:
int[] mangInt = {1, 3, 5, 7, 9};
T o ra m t m ng g m 5 ph n t , các ph n t c a m ng l n l t c gán các giá tr là: 1, 3, 5, 7, 9
SinhVien[] mangSinhVien = {
newSinhVien(“sv01”, “Nguy n V n A”, “HY”),
newSinhVien(“sv02”, “Nguy n Th B”, “HN”),
newSinhVien(“sv03”, “ Th Q”, “BG”), null
};
Khai báo m t m ng g m 4 ph n t , giá tr c a các ph n t l n l t c kh i gán nh sau: mangSinhVien [0]=newSinhVien(“sv01”, “Nguy n V n A”, “HY”)
mangSinhVien [1]=newSinhVien(“sv02”, “Nguy n Th B”, “HN”) mangSinhVien [2]=newSinhVien(“sv03”, “ Th Q”, “BG”) mangSinhVien [3]=null
b) Truy x t n các ph n t c a m ng m t chi u
truy xu t n ph n t th ind c a m ng ta s d ng cú pháp nh sau: Tên_m ng[ind-1]
Chú ý: Ph n t u tiên c a m ng có ch s là 0. Ví d :
int a[]=new int [3]; //Khai báo và t o ra m ng g m 3 ph n t Lúc này các ph n t c a m ng l n l t c truy xu t nh sau:
- Ph n t u tiên c a m ng là a[0] - Ph n t th 2 c a m ng là a[1]
- Ph n t th 3 ng th i là ph n t cu i cùng c a m ng là a[2]
c) L y v s ph n t hi n t i c a m ng
M ng trong Java là m t i t ng, do v y nó c ng có các thu c tính và các ph ng th c nh các i t ng khác. l y v s ph n t c a m ng ta s d ng thu c tính length nh sau: Tên_m ng.length Ví d 1: Nh p vào m t m ng và in ra màn hình importcom.theht.Keyboard; classArrayDemo{
public static voidmain(String[] args) { //Nh p s ph n t c a m ng
System.out.print("Nh p s ph n t c a m ng:"); int n=Keyboard.readInt();
//Khai báo m ng v i s ph n t b ng n int a[]=newint[n];
//Nh p d li u cho m ng
for(int i=0;i<a.length;i++){
System.out.print("a[" + i + "]="); a[i]=Keyboard.readInt();
}
//In m ng ra màn hình
System.out.println("M ng v a nh p là");
for (int i = 0; i < a.length; i++) System.out.print(a[i] + " "); }
Ví d 2: Nh p vào m t m ng s th c sau ó ki m tra xem m ng có ph i là m t dãy t ng hay không?
importcom.theht.Keyboard;
classArrayDemo2{
public static voidmain(String[] args) { //Nh p s ph n t c a m ng
System.out.print("Nh p s ph n t c a m ng:"); int n=Keyboard.readInt();
//Khai báo m ng v i s ph n t b ng n int a[]=newint[n];
//Nh p d li u cho m ng
for(int i=0;i<a.length;i++){
System.out.print("a[" + i + "]="); a[i]=Keyboard.readInt();
}
//Ki m tra dãy t ng boolean kt=true;
for (int i = 0; i < a.length-1; i++)
if(a[i+1]-a[i]<0){ kt=false;//thay i tr ng thái c break;//Thoát kh i vòng l p } if(kt) System.out.println("Dãy t ng d n"); else System.out.println("Dãy không ph i t ng d n"); } } 2. M ng nhi u chi u a) Khai báo
Khai báo m ng N chi u trong Java c ti n hành nh sau:
ho c
Trong ó:
Ø KDL là m t ki u d li u b t k : nguyên thu ho c l p
Ø sp1, sp2, …, sptN l n l t là s ph n t trên chi u th 1, 2, .., N Ví d :
- Khai báo m t con tr c a m ng 2 chi u
int[][] a; ho cint a[][];
Ø Khai báo và t o ra m ng 2 chi u:
int[][] a = new int[2][3]; // Ma tr n g m 2 hàng, 3 c t
KDL [][]…[] tên_m ng; N l n KDL tên_m ng [][] [] ; N l n KDL tên_m ng [][]…[] =new KDL[spt1][spt2]…[sptN]; N l n
- Khai báo và kh i gán giá tr cho các ph n t c a m ng 2 chi u: int a[][]={ {1, 2, 5}. //Các ph n t trên hàng th nh t {2, 4, 7, 9}. //Các ph n t trên hàng th hai {1, 7}. //Các ph n t trên hàng th ba }
Khai báo trên s t o ra m t m ng hai chi u g m: 3 hàng, nh ng trên m i hàng l i có s ph n t khác nhau, c th là: trên hàng th nh t có 3 ph n t , h ng 2 g m 4 ph n t và hàng th 3 g m 2 ph n t .
Chú ý: V i khai báo trên n u ta li t kê các ph n t c a m ng theo trình t t trái qua ph i và t trên xu ng d i thì các ph n t l n l t là:
a[0][0], a[0][1], a[0][2], a[1][0], a[1][1], a[1][2], a[1][3], a[2][0], a[2][1]
b) Truy xu t n ph n t m ng nhi u chi u
tên_m ng[ind1][ind2]
Ví d 1: Nh p vào m t ma tr n và in ra màn hình
importcom.theht.Keyboard;
classMaTram {
public static void main(String[] args) { //Nh p s hàng và s c t
System.out.print("Nh p s hàng:"); int sh = Keyboard.readInt();
System.out.print("Nh p s c t:"); int sc = Keyboard.readInt();
//Khai báo m ng hai chi u g m sh hàng và sc c t float a[][] =newfloat[sh][sc];
//Nh p d li u cho m ng hai chi u
for (int i = 0; i < a.length; i++)
for (int j = 0; j < a[i].length; j++) {
System.out.print("a[" + i + "," + j + "]="); //Nh p li u cho ph n t hàng i, c t j a[i][j] = Keyboard.readFloat(); }
//In m ng hai chi u ra màn hình
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length; j++) System.out.print(a[i][j] + " "); System.out.println();
} } } }
Ví d 2: Nh p vào ma tr n vuông sau ó tính t ng các ph n t trên ng chéo chính.