Nhập xuất màn hình console trong Java; 9. Comment trong Java; 10. Các kiểu dữ liệu trong java; 11. Biến và phạm vi biến trong Java; 12. Hàm - Phương thức trong Java Mảng đa chiều trong java; Lập trình hướng đối tượng. 1. Lập trình hướng đối tượng (OOP) là gì? 2. Tính đóng gói trong OOP
Mảng một chiều trong Java Mảng một chiều là một tập hợp của nhiều thành phần có kiểu tài liệu giống nhau . Cú pháp khai báo mảng Để khai báo mảng, tất cả chúng ta cần phải xác lập trước 3 thông tin thiết yếu sau : Kiểu dữ liệu của mảng. Tên của mảng. Số lượng các phần tử (hay kích thước) của mảng.
Chuyển mảng 1 chiều thành chuỗi trong Java | Arrays.toString Trong Java, nếu chúng ta tạo một mảng và gán nó cho một biến mảng, thì biến mảng sẽ chứa giá trị tham chiếu đến mảng. Do đó nếu bạn in biến mảng ra màn hình, thì không phải mảng, mà là một chuỗi ký tự đại diện cho giá trị tham chiếu sẽ được xuất ra màn hình. Ví dụ:
X vào vị trí k trong mảng A, N phần tử. Xoá phần tử ở vị trí h trong mảng A. Ví dụ: A : 12 2 3 6 5 17 X = 20 , k = 3 h = 2 Kết quả chèn: 12 2 3 20 6 5 17Kết quả xoá: 12 2 20 6 5 17Hướng } Một số bài tập lập trình PascalCreated by NgoHungVấn đề 3: Mảng 1 chiều Bài toán số 3.1: Nhập xuất và tính tổng các phần tử trong
Đây là bài 20/62 bài của series môn học Ngôn ngữ lập trình Java 1. Nhập xuất mảng 2 chiều trong Java Sử dụng 2 vòng lặp for lồng nhau để duyệt đến từng phần tử với chỉ số dòng và cột trong mảng 2 chiều. Sau đó, nhập hoặc xuất mảng 2 chiều với các phần tử đó.
Vay Tiền Nhanh. Mảng là một tập hợp các phần tử có kiểu tương tự nhau mà có vị trí ô nhớ liền kề. Mảng một chiều là một tập hợp của nhiều phần tử có kiểu dữ liệu giống nhau. Thực ra nó cũng gần tương tự nhau nên mình sẽ không giải thích gì nhiều nữa. Sự khác biệt là ở mảng đa chiều ta sẽ học trong bài sau. Để khai báo mảng, chúng ta cần phải xác định trước 3 thông tin cần thiết sau Kiểu dữ liệu của mảng. Tên của mảng. Số lượng các phần tử hay kích thước của mảng. Ta có 2 cách để khai báo một biến mảng C1 []; C2 [] ; Trong đó kiểu_dữ_liệu mô tả kiểu của mỗi phần tử thuộc mảng như int, char, double, String,… tên_mảng là tên của mảng và quy tắc đặt tên phải tuân theo quy tắc đặt tên biến trong Java. Ngoài ra ta còn có thể sử dụng từ khóa new . Cú pháp với từ khóa new giúp bạn ta vừa khai báo mảng vừa khởi tạo mảng. Tại sao lại như vậy? Vì tương tự như chuỗi, bản chất của mảng là 1 đối tượng. Vì vậy mà mảng cũng cần cấp phát bộ nhớ trước khi sử dụng. Chính vì thế mà khi sử dụng new ta đã vừa khai báo mà vừa khởi tạo mảng. Cú pháp [kiểu_dữ_liệu] [] [tên_mảng] = new [kiểu_dữ_liệu] [kích_thước_mảng] ; Nếu ta khai báo mảng rồi thì có thể khởi tạo mảng bằng cú pháp sau [tên_mảng] = new [kiểu_dữ_liệu] [kích_thước_mảng]; Trong đó kích_thước_mảng chỉ ra số phần tử tối đa mà mảng có thể lưu trữ. Giá trị này luôn phải là một số nguyên dương Ví dụ class Main{ public static void mainString[] args{ int []a;//khai báo mảng a = new int [5];//khởi tạo mảng } } Hoặc ta có thể vừa khai báo vừa khởi tạo giá trị cho mảng int[] a = new int[]{1,3,5,7,9}; Mảng này tên là a có kiểu dữ liệu int và chứa 5 phần tử có giá trị là 1, 3, 5, 7, 9 2. Truy xuất phần tử mảng một chiều trong Java Đối với mảng một chiều thì chúng ta có thể truy xuất các phần tử của mảng thông qua các chỉ số của phần tử đó. Cú pháp Tên_mảng[Chỉ_số_phần_tử]; Trong đó [Chỉ_số_phần_tử] là số thứ tự của các phần tử trong mảng. Và như mình đã lưu ý nhiều lần thì chỉ số trong mảng bắt đầu từ 0. Ví dụ mảng có n phần tử thì các phần tử của nó có chỉ số lần lượt là 0, 1, 2,…, n – 1 Ví dụ class Main{ public static void mainString[] args { // Khai báo và khởi tạo giá trị ban đầu cho mảng char[] kyTu = new char[] {'l', 't', 't', 'd', 'j'}; // hiển thị ký tự tại vị trí thứ 2 trong mảng tự tại vị trí thứ 2 trong mảng " + kyTu[2]; } } Kết quả Ký tự tại vị trí thứ 2 trong mảng t 3. Gán giá trị cho phần tử trong mảng một chiều Ta có 2 mảng array1 và array2 là các mảng có cùng kiểu dữ liệu. Giả sử các phần tử trong mảng array1 đã có giá trị, khi đó chúng ta có thể gán giá trị của một phần tử trong array1 cho một phần tử trong mảng array2 Ta sẽ làm như sau class Main{ public static void mainString[] args { // khai báo mảng array1 và array2 int[] array1 = {2, 10, 3, 9, 8}; int array2[] = new int[5]; // gán giá trị của phần tử thứ 2 trong mảng array1 // cho phần tử thứ 3 trong mảng array2 array2[3] = array1[2]; trị của phần tử thứ 3 trong mảng array2 = " + array2[3]; } } Kết quả Giá trị của phần tử thứ 3 trong mảng array2 = 3
Trong bài này, chúng ta sẽ tìm hiểu cách nhập và xuất cơ bản trong Java. Để xuất thì chúng ta có thể sử dụng hàm print, để nhập thì sử dụng đối tượng của lớp Java, chúng ta có thể sử dụng các hàm bên dưới để xuất dữ liệu ra màn hoặc hoặc Ví dụclass Main { public static void mainString[] args { programming is interesting."; } } Kết quảJava programming is khác nhau giữa các hàm println, print và printfprint in ra một chuỗi bên trong dấu ngoặc kép “”println in ra một chuỗi giống như hàm print. Sau đó, tự động xuống dòng in ra chuỗi với việc cung cấp các định dạng khác nhau giống như hàm printf trong C/C++.Ví dụ hàm print và printlnclass Main { public static void mainString[] args { println "; println "; print "; print"; } } Kết quả1. println 2. println 1. print 2. Print Một số ví dụ xuất trong Java khácclass Main { public static void mainString[] args { Double number = am " + "awesome."; = " + number; } } Kết quả5 I am awesome. Number = Các hàm xuất trong Java có thể xuất số, ký tự, chuỗi, giá trị của biến. Có thể dùng toán tử +’ để nối 2 chuỗi và xuất ra màn Nhập input trong JavaTrong Java, chúng ta có thể sử dụng đối tượng của lớp Scanner để lấy giá trị được nhập vào bởi người tiên, cần import gói đó, cần tạo một đối tượng của lớp Scanner. Đối tượng này sẽ giúp chúng ta lấy giá trị nhập vào của người dùng.// create an object of Scanner Scanner input = new Scanner // take input from the user int number = Các phương thức của lớp ScannerPhương thứcMô tảnextByteĐọc một số nguyên kiểu bytenextShortĐọc một số nguyên kiểu shortnextIntĐọc một số nguyên kiểu intnextLongĐọc một số nguyên kiểu longnextFloatĐọc một số kiểu floatnextDoubleĐọc một số kiểu doublenextĐọc một string kết thức trước một ký tự trắngnextLineĐọc một line of text kết thúc bằng phím EnterMột số ví dụ nhập trong Java sử dụng lớp Scannerimport class Main { public static void mainString[] args { Scanner input = new Scanner an integer "; int number = entered " + number; // Getting float input float "; float myFloat = entered = " + myFloat; // Getting double input double "; double myDouble = entered = " + myDouble; // Getting String input text "; String myString = entered = " + myString; // closing the scanner object } } Kết quảEnter an integer 21 You entered 21 Enter float Float entered = Enter double Double entered = Enter text HelloJava! Text entered = HelloJava! Lưu ý Chúng ta nên gọi hàm close để đóng đối tượng Scanner khi không sử dụng nữa. Kiểm tra validation dữ liệu trong html form với PHP Lập trình giao tiếp cảm biến DHT với board mạch Arduino Chương trình tính giai thừa factorial trong Java Hàm function và cách xây dựng hàm trong Python Thread là gì? Cách tạo Thread trong JavaJava programmingĐiều hướng bài viết
Mảng trong Java là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau. Mảng là một cấu trúc dữ liệu nơi lưu trữ các phần tử giống nhau. Với mảng trong java chúng ta chỉ có thể lưu trữ một tập các phần tử có số lượng phần tử cố định. Mảng trong Java Thông thường, mảng array là một tập hợp các phần tử có cùng kiểu được lưu trữ gần nhau trong bộ nhớ. Mảng trong java lưu các phần tử theo chỉ số, chỉ số của phần tử đầu tiên là 0. Dưới đây là hình ảnh mô tả một mảng một chiều, chúng ta sẽ tìm hiểu kỹ ở phần dưới nhé. Mảng 1 chiều trong Java Khai báo Cú pháp khai báo Kiểu_dữ_liệu tên_mảng[]; Khai báo một con trỏ mảng Kiểu_dữ_liệu []tên_mảng; tương tự như trên Kiểu_dữ_liệu tên_mảng[] = new Kiểu_dữ_liệu[Số_lượng_phần_tử]; Tạo ra một mảng có spt phần tử Trong cú pháp trên thì Kiểu dữ liệu gồm 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. Số phần tử là số lượng phần tử của mảng và là một số nguyên 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 Kiểu_dữ_liệu[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 - đối với kiểu number, '\0' - đối với kiểu dữ liệu là ký tự, false - đối với kiểu dữ liệu boolean, null - nếu kiểu dữ liệu là một lớp nào đó 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 = new int[100]; // Tạo ra mảng // Cách 2 int mangInt[]=new int[100]; 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[] = new SinhVien[100]; 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]=new SinhVien"sv01", "Nguyễn Văn An", "Hưng Yên"; arraySinhVien[1]=new SinhVien"sv02", "Nguyễn Thị Bình", "Bắc Giang"; …. arraySinhVien[99]=new SinhVien"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 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 // Với trường hợp là số int[] mangInt = {1, 3, 5, 7, 9}; // Với trường hợp là object SinhVien[] mangSinhVien = { new SinhVien"sv01", "Nguyễn Văn A", "HY", new SinhVien"sv02", "Nguyễn Thị B", "HN", new SinhVien"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]=new SinhVien"sv01", "Nguyễn Văn A", "HY" mangSinhVien [1]=new SinhVien"sv02", "Nguyễn Thị B", "HN" mangSinhVien [2]=new SinhVien"sv03", "Đỗ Thị Q", "BG" mangSinhVien [3]=null 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[Vị_trí_của_phần tử] Phần tử đầu tiên của mảng có chỉ số là 0 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] Truy cập các phần tử của một mảng trong Java public class Thaycacac { public static void mainString[] args { String[] cars = { "Honda", "BMW", "Ford", "Mazda" }; } } Thay đổi một phần tử mảng trong Java Để thay đổi giá trị của một phần tử cụ thể, hãy gán lại giá trị dựa vào vị trí của phần tử trong mảng public class TruyCapArray2 { public static void mainString[] args { String[] cars = { "Honda", "BMW", "Ford", "Mazda" }; // thay đổi phần tử đầu tiên của mảng cars cars[0] = "Morning"; // hiển thị phần tử đầu tiên của mảng cars tử đầu tiên " + cars[0]; } } Phần tử đầu tiên Morning Lấy về số phần tử hiện tại của mảng trong java 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 public class Thaycacac { public static void mainString[] args { String[] cars = { "Honda", "BMW", "Ford", "Mazda" }; dài của mảng cars là " + } } Độ dài của mảng cars là 4 Duyệt các phần tử của mảng trong Java Sử dụng vòng lặp for bạn có thể lặp qua các phần tử mảng bằng vòng lặp for và sử dụng thuộc tính length để chỉ định số lần vòng lặp sẽ chạy. public class Thaycacac { public static void mainString[] args { String[] cars = { "Honda", "BMW", "Ford", "Mazda" }; for int i = 0; i arr[i] { min = arr[i]; } } public static void mainString args[] { int a[] = { 33, 3, 4, 5 }; mina;// truyền mảng tới phương thức } } Sao chép một mảng trong java Chúng ta có thể sao chép một mảng tới mảng khác bởi phương thức arraycopy của lớp System. Cú pháp của phương thức arraycopy public class Thaycacac { public static void mainString[] args { char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' }; char[] copyTo = new char[7]; 2, copyTo, 0, 7; StringcopyTo; } } Mảng nhiều chiều Khai báo Khai báo mảng N chiều trong Java được tiến hành như sau Hoặc Trong đó KDL gồm 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. sp1, sp2, …, sptN lần lượt là số phần tử trên chiều thứ 1, 2, .., N // Khai báo một con trỏ của mảng 2 chiều int[][] a; int a[][]; // Cách khác để khai báo một con trỏ của mảng 2 chiều // Khai báo và tạo ra mảng 2 chiều Ma trận gồm 2 hàng, 3 cột int[][] a = new int[2][3]; // 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ử. 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] Truy xuất đến phần tử mảng nhiều chiều khai báo và khởi tạo mảng đa chiều trong java public class TestArray3 { public static void mainString args[] { // khai báo và khởi tạo mảng 2 chiều int arr[][] = { { 1, 2, 3 }, { 2, 4, 5 }, { 4, 4, 5 } }; // in mảng 2 chiều r màn hình for int i = 0; i < 3; i++ { for int j = 0; j < 3; j++ { + " "; } } } }
This entry is part 10 of 31 in the series Tự học lập trình JavaBài viết hôm nay mình sẽ giới thiệu cho các bạn hiểu và biết cách sử dụng mảng một chiều trong java. Mảng là một tập hợp các phần tử có kiểu tương tự nhau mà có vị trí ô nhớ liền kề. Mảng trong Java là một đối tượng chứa các phần tử có kiểu dữ liệu giống nhau. Cách khai báo [kiểu dữ liệu] [] [tên mảng] ; Ví dụ public class Test { public static void mainString[] args{ int []a; }} Ngoài ra bạn có thể khai báo theo cách sau [kiểu dữ liệu] [tên mảng] []; Cách khai báo này giống như cách khai báo mảng trong C/C++. Nhưng mình khuyên các bạn không nên khai báo theo cách này. Tạo mảng một chiều trong java Các bạn có thể khởi tạo mảng bằng cách dùng từ khóa new bằng cú pháp [kiểu_dữ_liệu] [] [tên_mảng] = new [kiểu_dữ_liệu] [kích_thước_mảng] ; Bằng cú pháp này bạn vừa khai báo mảng vừa khởi tạo mảng. Nếu bạn khai báo mảng rồi thì có thể khởi tạo mảng bằng cú pháp sau. [tên_mảng] = new [kiểu_dữ_liệu] [kích_thước_mảng]; Các bạn xem qua ví dụ public class Test { public static void mainString[] args{ int []a;//khai báo mảng a = new int [5];//khởi tạo mảng }} Các bạn có thể truy cập đến phần tử của mảng bằng cú pháp Các bạn lưu ý là mảng bắt đầu bằng từ phần tử 0 đến kích_thước_mảng -1. Mảng một chiều trong java public class Test { public static void mainString[] args{ int []a; a = new int [5]; forint i=0;i< a[i] = i; } }} Trong ví dụ trên i chạy từ 1 đến 4 và lần lượt gán giá trị của chính nó cho phần tử thứ i của mảng. Chúng ta dùng thuộc tính length để xác định kích thước mảng. Chúng cùng in giá trị của mảng a ra màn hình public class Test { public static void mainString[] args{ int []a; a = new int [5]; forint i=0; i< a[i] = i; } forint i=0;i < 5;i++{ tri cua a"+i+" la "+a[i]; } }} Gia tri cua a0 la 0Gia tri cua a1 la 1Gia tri cua a2 la 2Gia tri cua a3 la 3Gia tri cua a4 la 4 Thay vì bạn viết forint i ;i < kích_thước_mảng ; i++ thì java hỗ trợ một vòng lặp foreach cho phép chúng ta duyệt qua tất cả các phần tử của mảng. Cú pháp for kiểu_dữ_liệu tên_biến tên_mảng { //khối lệnh } Trong đó tên_biến được khai báo mới, mà là một kiểu tương thích với các phần tử của mảng bạn đang truy cập. Biến này sẽ là có sẵn trong khối for và giá trị của nó sẽ là giống như phần tử mảng hiện tại. Cùng xem qua ví dụ public class Test { public static void mainString[] args{ float a[] = {4,5,6,8};//Khởi tạo mảng a gồm 4 phần tử for float i a { In ra các giá trị a[i] } }} Ở đây mình đã khởi tạo sẵn một mảng float có các giá trị { } . Biến i được xem như một a[i] và các bạn có thể thao tác với nó. Bài viết của mình đến đây là kết thúc.
Sử dụng vòng lặp for để nhập các phần tử của mảng từ bàn phím. Sau đó, duyệt mảng để xuất các phần tử của mảng ra màn class Main { public static void mainString[] args { double[] myList = new double[5]; Scanner input = new Scanner " + + " cua mang"; for int i = 0; i max{ max = myList[i]; indexMax = i; } } tu max trong mang = " + max; so phan tu min trong mang = " + indexMax; } } Kết quảPhan tu max trong mang = Chi so phan tu min trong mang = 4 3. Duyệt mảng với vòng lặp for-eachCác bạn có thể đọc lại bài Các cấu trúc điều khiển vòng lặp for và for-each trong Java để nắm được cú pháp và cách sử dụng for-each. Bên dưới là ví dụ duyệt mảng với Main { public static void mainString[] args { double[] myList = { double sum = 0; double average = 0; //tính tổng các phần tử trong mảng for double number myList { sum += number; } //lấy kích thước của mảng int arrayLength = //tính trung bình cộng các phần tử trong mảng average = sum/arrayLength; = " + sum; binh = " + average; } } Kết quảTong = Trung binh = 4. Truyền mảng cho phương thức trong JavaMột phương thức có thể nhận mảng làm tham số. Khi truyền mảng array cho phương thức thì là truyền tham chiếu. Bất kỳ sự thay đổi nào xuất hiện trong phương thức sẽ làm thay đổi mảng được truyền vào. Các bạn có thể đọc lại bài Truyền tham trị và tham chiếu cho phương thức trong Java để hiểu rõ về truyền tham chiếu trong Main { public static void swapFirstTwoInArrayint[] array { int temp = array[0]; array[0] = array[1]; array[1] = temp; } public static void mainString[] args { int[] arr = {1, 2}; truoc khi goi ham swap"; la {" + arr[0] + ", " + arr[1] + "}"; swapFirstTwoInArrayarr; sau khi goi ham swap"; la {" + arr[0] + ", " + arr[1] + "}"; } } Kết quảMang truoc khi goi ham swap array la {1, 2} Mang sau khi goi ham swap array la {2, 1} Rõ ràng, khi truyền mảng arr vào hàm swapFirstTwoInArray thì mảng đã thay Kiểu dữ liệu trả về của phương thức là một mảngKết quả trả về của một phương thức có thể là một Main { public static int[] reverseint[] list { int[] result = new int[ for int i=0, j= i< i++,j- { result[j] = list[i]; } return result; } public static void mainString[] args { int[] list1 = {1, 2, 3, 4, 5, 6}; int[] list2 = reverselist1; list2 "; forint itemlist2{ + " "; } } } Kết quảMang list2 6 5 4 3 2 1Hàm reverse có kiểu trả về là mảng kiểu Lớp Arrays trong JavaLớp cung cấp các phương thức tĩnh static method cho việc sắp xếp mảng và tìm kiếm trong mảng, so sánh mảng,… 6 bước xây dựng một chương trình máy tính Sử dụng từ khóa super trong Java Sự khác nhau giữa echo và print trong PHP Sử dụng kiểu dữ liệu boolean trong PHP Kỹ thuật lập trình với kiểu cấu trúc và con trỏ trong C++import class Main { public static int[] reverseint[] list { int[] result = new int[ for int i=0, j= i< i++,j- { result[j] = list[i]; } return result; } public static void mainString[] args { double[] numbers = { cua phan tu la" + xếp mảng tang dan da sap xep tang dan" + } } Kết quảIndex cua phan tu la2 Mang da sap xep tang dan[
nhập xuất mảng 1 chiều trong java