XỬ
DỤNG JAVA ARRAY
Trong
Java programming, array là một container
rất quan tṛong vì nó có thể chứa được rất nhiều data cùng loại.
Muốn viết một Java program cần chứa đựng
rất nhiều data, chúng ta phải xử dụng array.
Trong
8 primitive data types của Java có 4
loại data types quan trọng thường được xử dụng là integer type, String type, float type và double type.
Riêng
float type và double
type
có sự khác nhau như sau.
float type cho số
lẽ ít hơn hoặc hạn chế vì xử dụng 32 bit.Khi viết con số cho float type phải nhớ cuối con số phải
có chữ f.Nếu
bỏ quên chữ f thì không có kết quả.
Thí dụ 102.0f;
Còn
double type thì cho rất nhiều số lẽ tuỳ theo ý
muốn của chúng ta vì double type xử dụng 64 bit.
Có 2 cách viết
syntax sau đây để diễn tả array.
Viết theo cách nầy
phải ấn định số lượng elements chứa trong array.
int[]
array = new int[4];.
String[]
array = new String [4];
float[]
score = new float[4] ;
Viết theo cách nầy
thì không giới hạn số lượng elements trong array.
int[]
array = {2,4,6,8};
String[] array = {" Henry","Pano" , "Juan","Tim"};
float[]
score =new float[] {2.2f, 4.6f, 6.9f, 8.1f};
double[]
x = {2.2, 4.6, 6.9, 8.1};
---------------------------
SAU ĐÂY THÍ DỤ ÁP DỤNG ARRAYS ĐỂ VIẾT VÀI
JAVA PROGRAMS
Viết một program danh sách tồn trữ tên và ID của 5 chuyên viên phòng thí nghiệm.
Viết tên, chúng ta dùng String [] array.
Viết ID, chúng ta dùng int [] array2.
Vì muốn viết chung “ 2 arrays of different type” trong một main method nên chúng ta phải nhớ viết hai chữ array và array2 khác nhau thì compiler mới cho “ compile and run program”.
Có 3 cách làm hiển thị array.
* In trực tiếp từ array : System.out.println( Arrays.toString(x));
* Hoặc viết theo phương pháp goi classical hay traditional " loop over array " rồi in ra:
for (i = 0; i < array.length; i++) {
System.out.println( array[i]);}
Phương pháp nầy phải có counter và condition.
* Hoặc dùng phương pháp mới goị là '1.5 for-each loop ' còn được gọi
Enhanced loop dùng để ‘loop over an array returned by a function’. Thí dụ phía dưới.
-----------------------
1- VIẾT ARRAYS TRONG MAIN METHOD.
1-1- " LOOP OVER ARRAY " và in như sau :
for (i = 0; i < array.length;
i++) {
System.out.println( array[i]);}
class Rextester
{
public static void
main(String[] args) {
String [] array = new String[5];
array [0]= " HENRY-101 " ;
array [1] = " PANO-202 " ;
array [2]= " JUAN-303 " ;
array [3]= " TIM-404 " ;
array [4]= " MARTHA-505 " ;
int
i ;
for (i = 0; i < array.length;
i++) {
System.out.println( array[i]);}
int k ;
int[]
array2 = {101, 202, 303, 404, 505};
for (k = 0; k < array2.length; k++) {
System.out.println( array2[k]) ;}
} }
OUTPUT.
Compilation time: 1.04 sec, absolute running time: 0.17 sec,
cpu time: 0.1 sec, memory peak: 27 Mb, absolute service time: 1.22 sec
HENRY-101
PANO-202
JUAN-303
TIM-404
MARTHA-505
101
202
303
404
505
----------------
class Rextester {
public static void main(String[] args) {
float[] f1 = new float[]{3.5f,2f,5f,4.6f,
1.2589487529f };
System.out.print("Original Array :\t ");
for(int
i=0; i < f1.length ; i++)
System.out.print(" "
+ f1[i]);
}}
OUTPUT.
Compilation time: 0.72 sec, absolute running time: 0.14 sec,
cpu time: 0.08 sec, memory peak: 28 Mb, absolute service time: 0.87 sec
Original Array : 3.5 2.0 5.0 4.6 1.2589488 // float cắt bớt số lẽ.
--------------------------------
class Rextester {
public static void main(String[] args) {
float[] score = new float[5] ;
score[0] = 3.5f ;
score[1] = 2f;
score[2] = 5f ;
score[3] = 4.6f ;
score[4] = 1f;
System.out.print("Original Array :\t ");
for(int i=0; i < score.length ; i++)
System.out.print(" " + score[i]);
}}
OUTPUT.
Compilation time: 1.14 sec, absolute running time: 0.14 sec,
cpu time: 0.08 sec, memory peak: 26 Mb, absolute service time: 1.29 sec
Original Array : 3.5 2.0 5.0 4.6 1.0
1-2- IN TRỰC TIẾP TỪ ARRAY : System.out.println( Arrays.toString(x));
class Rextester {
public static void main(String[] args) {
String[] x =
{"Henry-101","Pano-202","Tim-303","Juan-404","Martha-505"};
System.out.println( Arrays.toString(x)) ;} //Phải viết hoa chữ A của Arrays
}
OUPUT.
Compilation time: 0.83 sec,
absolute running time: 0.14 sec,
cpu time: 0.08 sec, memory peak:
28 Mb, absolute service time: 0.98 sec
[Henry-101, Pano-202, Tim-303,
Juan-404, Martha-505]
------------
class Rextester {
public static void main(String[] args) {
float[] score = new
float[]{3f,2f,5f,4f,1f};
System.out.print("Original Array :\t ");
System.out.println( Arrays.toString(score)) ;}
}
OUTPUT.
Original Array : [3.0, 2.0, 5.0, 4.0, 1.0]
-----------------------------
2-
VIẾT ARRAYS NGOÀI MAIN METHOD.
Trường hợp muốn array phải chứa nhiều variables cần thay đổi thì chúng ta viết array trong một function đặt ở ngoài main method rồi call function đó từ main method để có return của function.
2-1- Array sau đây có 2 variable integers x và y thay đổi và chúng ta muốn có return cuả function.
Array là integer
class Rextester {
static int[] getResult(int x, int y) {
int[] array = new int[5];
array[0] = x*y;
array[1] = x/y;
array[2] = x+y;
array[3] = x-y;
array[4] = x*x;
return array;}
public static void main(String[] args){
for(int e : getResult(20,5)){ //gọi 1.5 for-each loop over the function
System.out.println(e); }
}}
OUTPUT.
Compilation time: 0.73 sec, absolute running time: 0.13 sec,
cpu time: 0.07 sec, memory peak: 28 Mb, absolute service time: 0.86 sec
100
4
25
15
400
2- 2. Array sau đây là String viết trong một function nằm ngoải main method nếu chúng ta muốn có return của function.
class Rextester{
static String [] getResult( ) {
System.out.println(" CỮA HÀNG BÁN THƯỜNG TRỰC NHỮNG MÓN SAU ĐÂY:" );
String [] array = new String[5];
array[0] = "CAM QUÝT FLORIDA" ;
array[1] = " SẦU RIÊNG MALAYSIA " ;
array[2] = " MÍT TỐ NỮ VN " ;
array[3] = " CHÔM CHÔM CÁI BÈ LONG XUYÊN VN";
array[4] = " Muốn mua món đặc biệt xin cho order.\nHenry Baxao Cám ơn. ";
return array;}
public static void main(String[] args){
/* Loop over an array returned by a method.*/
for(String str : getResult( )){
System.out.println(str);}
}}
OUTPUT.
Compilation time: 0.83 sec, absolute running time: 0.13 sec,
cpu time: 0.07 sec, memory peak: 27 Mb, absolute service time: 0.96 sec
CỮA HÀNG BÁN THƯỜNG TRỰC NHỮNG MÓN SAU ĐÂY:
CAM QUÝT FLORIDA
SẦU RIÊNG MALAYSIA
MÍT TỐ NỮ VN
CHÔM CHÔM CAI BÈ LONG XUYÊN VN
Muốn mua món đăc biệt xin cho order.
Henry Baxao cám ơn .