Các phương pháp sử dụng String, Arrays, List, Set, Map trong giải bài tập lập trình

Arrays

1. Trích xuất mảng con

int[] mangCon = Arrays.copyOfRange(mangGoc, chiSoBatDau, chiSoKetThuc)

- mangGoc − Mảng gốc để trích xuất phần tử.

- chiSoBatDau − Chỉ số bắt đầu của phạm vi cần sao chép (bao gồm).

- chiSoKetThuc − Chỉ số kết thúc của phạm vi cần sao chép (không bao gồm).

Độ dài của mảng trả về sẽ là chiSoKetThuc - chiSoBatDau

2. Sắp xếp mảng

Arrays.sort(mangSo);

3. Chuyển đổi mảng thành danh sách

danhSachKetQua.add(new ArrayList<>(Arrays.asList(mangSo[i], mangSo[j], mangSo[k])));

4. Điền giá trị vào mảng

Arrays.fill(mang, 0);

Điền toàn bộ mảng bằng giá trị 0

String

1. Chuyển đổi thành mảng ký tự

String chuoi = "Java được phát triển bởi James Gosling";
char mangKyTu[] = chuoi.toCharArray();

Phương thức java.lang.String.toCharArray() chuyển đổi chuỗi này thành mảng ký tự mới.

2. Lấy ký tự tại vị trí chỉ định

chuoi.charAt(4)

3. Trích xuất số nguyên từ chuỗi

int a = Integer.parseInt("12");

Phân tích chuỗi tham số s thành số nguyên thập phân có dấu.

List

ArrayList

1. Thêm phần tử vào cuối

danhSach.add(giaTri);

Phương thức này thêm phần tử đã chỉ định vào cuối danh sách.

2. Lấy phần tử tại vị trí chỉ định

danhSach.get(viTri);

Phương thức này trả về phần tử tại vị trí đã chỉ định trong danh sách.

3. Chuyển đổi HashSet thành ArrayList

return new ArrayList<>(tapHop);

ArrayList cung cấp một hàm tạo có thể nhận bất kỳ đối tượng nào đã triển khai giao diện Collection làm tham số. Vì HashSet triển khai giao diện Set, và Set lại là giao diện con của Collection.

4. Lấy số lượng phần tử của ArrayList

soLuong = danhSachSo.size();

LinkedList

1. Kiểm tra xem có rỗng không

danhSach.isEmpty()

Phương thức kế thừa từ lớp AbstractCollection.

2. Trả về phần tử cuối cùng của danh sách

danhSach.getLast()

Phương thức java.util.LinkedList.getLast() trả về phần tử cuối cùng trong danh sách này.

3. Thêm phần tử đã chỉ định vào cuối danh sách

danhSach.addLast("Phần tử");

Phương thức java.util.LinkedList.addLast(E e) chèn phần tử đã chỉ định vào cuối danh sách.

4. Xóa và trả về phần tử cuối cùng trong danh sách

danhSach.removeLast()

Set

HashSet

1. Khai báo

Set<Character> tapHop = new HashSet<>();

2. Kiểm tra xem tập hợp có chứa phần tử nào không

boolean coTonTai = tapHop.contains(giaTriHienTai);

3. Thêm phần tử

tapHopMoi.add("Đơn giản");

4. Xóa phần tử

tapHopMoi.remove("Dễ dàng");

5. Chuyển đổi ArrayList thành HashSet

Set tapHop = new HashSet<>(danhSachKetQua);

Hàm tạo của HashSet có thể nhận bất kỳ đối tượng nào đã triển khai giao diện Collection làm tham số, và ArrayList triển khai giao diện List, mà List lại là giao diện con của Collection.

Map

HashMap

1. Kiểm tra xem có chứa khóa không

if(bangBam.containsKey(khoa)) {}

Phương thức này trả về true nếu ánh xạ này chứa ánh xạ cho khóa đã chỉ định.

2. Trả về giá trị tương ứng với khóa

bangBam.get(khoa);

Phương thức này trả về giá trị được ánh xạ bởi khóa đã chỉ định, hoặc null nếu ánh xạ này không chứa ánh xạ cho khóa đó.

3. Xóa entry tương ứng với khóa

bangBam.remove(khoa);

Phương thức này xóa ánh xạ cho khóa đã chỉ định khỏi ánh xạ này (nếu có).

4. Thêm cặp khóa-giá trị

bangBam.put(khoa, node);

Random - Lấy giá trị ngẫu nhiên

// tạo đối tượng Random
Random ngauNhien = new Random();
ngauNhien.nextInt(n);
int chot = danhSach.get(ngauNhien.nextInt(danhSach.size()));

Phương thức trả về một giá trị int ngẫu nhiên, phân phối đều, nằm giữa 0 (bao gồm) và n (không bao gồm).

Sau đó chúng ta sử dụng ArrayList để lấy giá trị, đây là một cách viết khác.

PriorityQueue - Heap nhỏ nhất

1. Tạo hàng đợi ưu tiên

PriorityQueue<NhiemVu> hangDoi = new PriorityQueue<>(
    (o1, o2) -> {
        if (o1.doUuTien != o2.doUuTien) {
            return Integer.compare(o1.doUuTien, o2.doUuTien);
        } else {
            return Integer.compare(o1.thuTu, o2.thuTu);
        }
    }
);

PriorityQueue của Java mặc định là heap nhỏ nhất, tức là: các phần tử nhỏ sẽ xếp trước, ra khỏi hàng đợi trước. Thứ tự của PriorityQueue không do chính nó kiểm soát mà hoàn toàn do Comparator bạn truyền vào!

1. Sắp xếp tăng dần (hàng đợi nhỏ nhất): phần tử nhỏ hơn ưu tiên

Queue<Integer> heapNho = new PriorityQueue<>((a, b) -> Integer.compare(a, b));

2. Sắp xếp giảm dần (hàng đợi lớn nhất): phần tử lớn hơn ưu tiên

Queue<Integer> heapLon = new PriorityQueue<>((a, b) -> Integer.compare(b, a));

2. Phương thức Integer.compare(a,b) để xác định thứ tự

public static int compare(int x, int y)
// So sánh hai giá trị int.
// Trả về:
// 0 nếu x == y
// giá trị âm nếu x < y
// giá trị dương nếu x > y

3. Thêm phần tử vào hàng đợi

hangDoi.offer(nhiemVu);
// hoặc
hangDoi.add(nhiemVu);

4. Lấy và xóa phần tử đầu hàng đợi

nhiemVuHienTai = hangDoi.poll();

5. Xem nhưng không xóa phần tử đầu hàng đợi

NhiemVu nhiemVuDau = hangDoi.peek();

Xử lý đầu vào/đầu ra

Trong Java, trim() là một phương thức của lớp String, được sử dụng để loại bỏ các ký tự trắng ở đầu và cuối chuỗi, bao gồm:

  • Khoảng trắng (space) ' '
  • Ký tự tab (tab) '\t'
  • Ký tự xuống dòng (newline) '\n'
  • Ký tự xuống dòng (carriage return) '\r'

Thẻ: Java arrays string list set

Đăng vào ngày 10 tháng 6 lúc 00:49