Chương 3 - Mảng và Collection | Tài liệu giảng dạy: Lập trình Java | Đại học Văn Lang
Chương 3 - Mảng và Collection | Tài liệu giảng dạy: Lập trình Java | Đại học Văn Lang giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học
Môn: Công nghệ thông tin (2200115174)
Trường: Đại học Văn Lang
Thông tin:
Tác giả:
Preview text:
TRƯỜNG ĐẠI HỌC HỌC VĂN LANG
KHOA CÔNG NGHỆ THÔNG TIN
TÀI LIỆU GIẢNG DẠY LẬP TRÌNH JAVA
Chủ biên: ThS. TỐNG HÙNG ANH 2020
Khoa Công nghệ Thông tin MỤC LỤC MỤC LỤC
I.Cấu trúc dữ liệu mảng................................................................................................................................3
II.Mảng trong Java.......................................................................................................................................3
II.1 Mảng một chiều trong Java....................................................................................................................3
1. Tạo một mảng trong Java..................................................................................................................3
2. Các cách khác để tạo một mảng trong Java.....................................................................................3
4. Thay đổi một phần tử mảng trong Java...........................................................................................3
5. Độ dài mảng trong Java.....................................................................................................................4
6. Duyệt các phần tử của mảng trong Java...........................................................................................4
7. Sử dụng vòng lặp for......................................................................................................................5
8. Sử dụng foreach..............................................................................................................................5
9. So sánh for với foreach...................................................................................................................6
10. Sắp xếp mảng....................................................................................................................................6
11. Các phương thức tiện ích cho mảng một chiều..............................................................................7
II.2. Mảng hai chiều trong Java.....................................................................................................................9
1.Khai báo mảng hai chiều trong Java..................................................................................................9
2. Khởi tạo và gán giá trị cho mảng hai chiều trong java................................................................9
3. Khai báo và khởi tạo mảng hai chiều trong java.............................................................................9
4.Cộng hai ma trận (mảng hai chiều) trong Java.................................................................................9
III. Collection framework...........................................................................................................................11
Lập trình java 2
Khoa Công nghệ Thông tin
Giải bổ sung bài tập 6 – chương 2:
Bài 6 (chương 2): Tạo và in mảng đối tượng nhân viên package cau6;
import java.util.Scanner; public class NhanVien { String name; String address; int age; public NhanVien(String , String ten diaChi int ,
) { //contructor để khởi tạo thông tin tuoi
// TODO Auto-generated constructor stub name = ten; address = diaChi; age = tuoi; } public static void main(String[] args) {
NhanVien[] nVien = new NhanVien[10];
Scanner sc = new Scanner(System. ); // nhập từ bàn phím in
System.out.println( ); "Nhập vào mảng NV:"
for (int i=0; i< nVien.length; i++) { String ten = sc.nextLine(); String diaChi = sc.nextLine(); int = tuoi sc.nextInt();
nVien[i] = new NhanVien(ten diaChi , tuoi , );
sc.nextLine(); //xóa vùng nhớ đệm }
System.out.println( ); "Xuất mảng NV:"
for (int i=0; iSystem.out.println(nVien[i].name +" "+nVien[i].address+" "+nVien[i].age); } } }
I.Cấu trúc dữ liệu mảng
Lập trình java 3
Khoa Công nghệ Thông tin II.Mảng trong Java
II.1 Mảng một chiều trong Java
1. Tạo một mảng trong Java
2. Các cách khác để tạo một mảng trong Java
3. Truy cập các phần tử của một mảng trong Java
Bạn truy cập một phần tử mảng bằng cách sử dụng số chỉ mục (index). BÀI TẬP
1 : Truy cập một phần tử đầu tiên mảng { "Honda", "MERCEDES", "Ford",
"HUNDAI"} bằng cách sử dụng số chỉ mục [0]. Hướng dẫn
public class TruyCapPhanTuMang {
public static void main(String[] args) {
// TODO Auto-generated method stub String[] cars = { "Honda", , "MERCEDES" "Ford", "HUNDAI" };
System.out.println(cars[1]); } } Kết quả: MERCEDES
Lưu ý: Chỉ mục của mảng bắt đầu bằng 0: [0] là phần tử đầu tiên. [1] là phần tử thứ hai, v.v.
4. 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 sử dụng số chỉ mục:
BÀI TẬP 2: Thay đổi giá trị của một phần tử đầu tiên "Morning" của mảng { "Honda", "MERCEDES" "Ford" ,
, "HUNDAI" }, hãy sử dụng số chỉ mục[0]:
Lập trình java 4
Khoa Công nghệ Thông tin Hướng dẫn
public class ThayDoiPhanTuMang {
public static void main(String[] ) { args
String[] cars = { "Honda", "MERCEDES", "Ford", "HUNDAI" };
// Thay doi phần tử đầu tiên cars[0] = "Morning";
// hiển thị phần tử đầu tiên và thứ 2 của mảng
System.out.println("P/tử thứ 1: " + cars[0]);
System.out.println("P/tử thứ 2: " + cars[1]); } } Kết quả: Morning MERCEDES
5. Độ dài mảng trong Java
Để biết có bao nhiêu phần tử một mảng, sử dụng hàm : length BÀI TẬP
3 : In ra bao nhiêu phần tử một mảng { "Honda", " , MERCEDES" "Ford",
"HUNDAI" }, sử dụng hàm length. Hướng dẫn
public class DoDaiMang {
public static void main(String[] args) {
// TODO Auto-generated method stub String[] cars = { "Honda", , "MERCEDES" "Ford", "HUNDAI" };
System.out.println("Độ dài của mảng cars là: " + cars.length); } } Kết quả:
Độ dài của mảng cars là: 4
Lập trình java 5
Khoa Công nghệ Thông tin
6. Duyệt các phần tử của mảng trong Java
Lập trình java 6
Khoa Công nghệ Thông tin
7. 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 hàm length để chỉ định số lần vòng lặp sẽ chạy. BÀI TẬP 4
: Lặp qua để in ra các phần tử mảng { "Honda", "MERCEDES", "Ford",
"HUNDAI" } bằng vòng lặp for và sử dụng hàm length để chỉ định số lần vòng lặp sẽ chạy. Hướng dẫn
public class DuyetCacPhanTu_for {
public static void main(String[] ) { args String[] cars = { "Honda", , "MERCEDES" "Ford", "HUNDAI" };
for (int i = 0; i < cars.length; i++) {
System.out.println(cars[i]); } } } Kết quả: Honda MERCEDES Ford HUNDAI 8. Sử dụng foreach BÀI TẬP 5
: Lặp qua để in ra các phần tử mảng { "Honda", "MERCEDES", "Ford",
"HUNDAI" } bằng vòng lặp foreach. Hướng dẫn
public class DuyetCacPhanTu_foreach {
public static void main(String[] ) { args
String[] cars = { "Honda", "MERCEDES", "Ford", "HUNDAI" };
for (String car : cars){ }
System.out.println(car); } }
Lập trình java 7
Khoa Công nghệ Thông tin Kết quả: Honda MERCEDES Ford HUNDAI
9. So sánh for với foreach
Nếu bạn so sánh vòng lặp for và vòng lặp foreach, bạn sẽ thấy rằng phương thức foreach dễ viết
hơn, nó không yêu cầu bộ đếm (sử dụng thuộc tính length) và nó dễ đọc hơn. 10. Sắp xếp mảng
Có nhiều phương thức mảng có sẵn, Bài tập Sort(), sắp xếp một mảng theo thứ tự bảng chữ cái
hoặc theo thứ tự tăng dần,
BÀI TẬP 6: Sắp xếp một mảng { "Honda", "MERCEDES", "Ford", "HUNDAI" } theo thứ
tự bảng chữ cái hoặc theo thứ tự tăng dần. Hướng dẫn
import java.util.Arrays;
public class SapXepCacPhanTuMang_TangDan {
public static void main(String[] ) { args String[] cars = { "Honda", ,
"MERCEDES" "Ford", "HUNDAI" }; Arrays.sort(cars);
System.out.println( );
"Mảng cars sau khi được sắp xếp:"
for (String car : cars) { }
System.out.println(car); } } Kết quả:
Mảng cars sau khi được sắp xếp: Ford Honda HUNDAI MERCEDES
Lập trình java 8
Khoa Công nghệ Thông tin
11. Các phương thức tiện ích cho mảng một chiều BÀI TẬP 7
: TẠO MẢNG {15, 5, 10, 20, 25}
Sắp xếp các giá trị của mảng tăng dần.
Tìm kiếm chỉ số của một giá trị 20 xuất hiện trong mảng.
/Gán cùng một giá trị 99 cho tất cả các phần tử của mảng. Hướng dẫn
import java.util.Arrays;
public class CacPhuongThucTienIch {
public static void main(String[] args) {
// TODO Auto-generated method stub
// Khai báo một mảng 5 phần tử kiểu nguyên
int[] arr = {15, 5, 10, 20, 25};
System.out.println( );
"Gọi hàm toString để hiển thị mảng: "
// Chuyển một mảng thành chuỗi (string)
System.out.println(Arrays.toString(arr));
// Sắp xếp các giá trị của mảng tăng dần Arrays.sort(arr);
System.out.println("Sau khi gọi hàm sort: ");
// Chuyển một mảng thành chuỗi (string)
System.out.println(Arrays.toString(arr));
// Tìm kiếm chỉ số của một giá trị xuất hiện trong mảng.
// Mảng phải được sắp xếp trước khi gọi hàm binarySearch
int index = Arrays.binarySearch(arr, 10); if (index < 0) {
Lập trình java 9
Khoa Công nghệ Thông tin
System.out.println( );
"Không tìm thấy giá trị" } else {
System.out.println("Tìm thấy giá trị 10 tại index " + index); }
// Gán cùng một giá trị cho tất cả các phần tử của mảng. Arrays.fill(arr, 49);
System.out.println( ); "Sau khi gọi hàm fill: "
// Chuyển một mảng thành chuỗi (string)
System.out.println(Arrays.toString(arr)); } } Kết quả:
Gọi hàm toString để hiển thị mảng: [15, 5, 10, 20, 25] Sau khi gọi hàm sort: [5, 10, 15, 20, 25]
Tìm thấy giá trị 10 tại index 2 Sau khi gọi hàm fill: [49, 49, 49, 49, 49]
Lập trình java 10
Khoa Công nghệ Thông tin
II.2.Mảng hai chiều trong Java
1.Khai báo mảng hai chiều trong Java
2. Khởi tạo và gán giá trị cho mảng hai chiều trong java
3. Khai báo và khởi tạo mảng hai chiều trong java BÀI TẬP
8 : tạo mảng hai chiều { { 1, 2, 3 }, { 2, 4, 5 }, { 4, 4, 5 } }sau đó in mảng 2 chiều ra màn hình Hướng dẫn
public class InCacPhanTuMangHaiChieu {
public static void main(String[] ) { args
int arr[][] = { { 1, 2, 3 }, { 4, 5, 6 }, { 7, 8, 9 } };
// in mảng 2 chiều ra màn hình for (int i i = 0; < 3; i++) { for (int j j = 0; < 3; j++) {
System.out.print(arr[i][j] + “ ”); }
System.out.println(); } } } Kết quả: 1 2 3 4 5 6 7 8 9
4.Cộng hai ma trận (mảng hai chiều) trong Java BÀI TẬP
9 : Cộng hai ma trận { { 1, 3, 4 }, { 3, 4, 5 } };
Lập trình java 11
Khoa Công nghệ Thông tin { { 1, 3, 4 }, { 3, 4, 5 } }; Hướng dẫn
public class CongHaiMaTRan {
public static void main(String[] ) { args
int a[][] = { { 1, 2, 4 }, { 3, 4, 5 } };
int b[][] = { { 1, 3, 5 }, { 3, 3, 3 } };
// Tạo ma trận khác để lưu kết quả
int c[][] = new int[2][3]; // Cộng hai ma trận for (int i i = 0; < 2; i++) { for (int j j = 0; < 3; j++) { c[i][j] = a[i][j] + b[i][j];
System.out.print(c[i][j] + " "); }
System.out.println(); } } } Kết quả: 2 5 9 6 7 8
Lập trình java 12