1. Câu lệnh if-else: - Java: Câu lệnh if-else trong Java được sử dụng để kiểm tra một điều kiện và thực hiện các hành động khác nhau dựa trên kết quả của điều kiện. ```java if (condition) { // Thực hiện khi điều kiện đúng } else { // Thực hiện khi điều kiện sai } ``` - Python: Cú pháp if-else trong Python tương tự như trong Java. ```python if condition: # Thực hiện khi điều kiện đúng else: # Thực hiện khi điều kiện sai ``` 2. Toán tử logic trong điều kiện: - Java và Python đều hỗ trợ các toán tử logic như `&&` (và), `||` (hoặc), và `!` (phủ định) để xử lý các điều kiện phức tạp. 3. Vòng lặp: - Vòng lặp for: - Java: Trong Java, vòng lặp for thường được sử dụng để lặp qua một dãy giá trị hoặc một mảng. ```java for (int i = 0; i < 5; i++) { // Thực hiện vòng lặp 5 lần } ``` - Python: Python cũng có vòng lặp for, nhưng nó hoạt động khác biệt một chút. ```python for i in range(5): # Thực hiện vòng lặp 5 lần ``` - Vòng lặp while: - Java: Trong Java, vòng lặp while thực hiện cho đến khi điều kiện không còn đúng nữa. ```java while (condition) { // Thực hiện vòng lặp cho đến khi điều kiện sai } ``` - Python: Python cũng hỗ trợ vòng lặp while với cú pháp tương tự. ```python while condition: # Thực hiện vòng lặp cho đến khi điều kiện sai ``` - Vòng lặp do-while (Java không có vòng lặp do-while): - Python: Python không có vòng lặp do-while trực tiếp, nhưng bạn có thể mô phỏng chúng bằng cách sử dụng một vòng lặp while với điều kiện kiểm tra ở cuối vòng lặp. ```python while True: # Thực hiện thứ gì đó if not condition: break ``` 4. Làm việc với mảng và collection (ArrayList): - Java: Java cung cấp một loạt các cấu trúc dữ liệu cho việc làm việc với mảng và danh sách, trong đó ArrayList là một trong số phổ biến nhất. ```java ArrayList<Integer> list = new ArrayList<Integer>(); list.add(1); list.add(2); // Thêm phần tử vào danh sách int value = list.get(0); // Truy cập phần tử trong danh sách ``` - Python: Python có danh sách (list) là một cấu trúc dữ liệu phổ biến cho việc lưu trữ nhiều giá trị. ```python my_list = [1, 2, 3] my_list.append(4) # Thêm phần tử vào danh sách value = my_list[0] # Truy cập phần tử trong danh sách ``` Hy vọng rằng thông tin này giúp bạn hiểu sự tương đương giữa Java và Python đối với các khái niệm về điều kiện, vòng lặp và cách làm việc với mảng và danh sách. Trong Java, có nhiều cách để lưu trữ và quản lý dữ liệu, và có nhiều cấu trúc dữ liệu phổ biến để thực hiện việc này. Dưới đây là một số trong những cấu trúc dữ liệu và collection phổ biến nhất trong Java: 1. ArrayList: ArrayList là một danh sách động dựa trên mảng (dynamic array). Nó cho phép bạn thêm, xóa, và truy cập các phần tử dễ dàng. ArrayList không có kích thước cố định và có thể mở rộng khi cần. ```java ArrayList<String> danhSachTen = new ArrayList<>(); danhSachTen.add("John"); danhSachTen.add("Alice"); danhSachTen.remove(0); ``` 2. LinkedList: LinkedList là một danh sách liên kết, trong đó mỗi phần tử được liên kết với phần tử tiếp theo. Nó có hiệu suất tốt cho việc chèn và xóa các phần tử ở giữa danh sách. ```java LinkedList<Integer> danhSachSoNguyen = new LinkedList<>(); danhSachSoNguyen.add(1); danhSachSoNguyen.add(2); danhSachSoNguyen.removeFirst(); ``` 3. HashSet: HashSet là một tập hợp không có thứ tự và không chứa các phần tử trùng lặp. Nó được sử dụng để lưu trữ các giá trị duy nhất. ```java HashSet<String> tapHopTen = new HashSet<>(); tapHopTen.add("Alice"); tapHopTen.add("Bob"); ``` 4. HashMap: HashMap là một bản đồ (map) không có thứ tự, sử dụng khóa để liên kết với giá trị tương ứng. Nó cho phép bạn tìm kiếm, thêm và xóa các cặp khóa-giá trị. ```java HashMap<String, Integer> tuoiCuaNguoi = new HashMap<>(); tuoiCuaNguoi.put("Alice", 30); tuoiCuaNguoi.put("Bob", 25); ``` 5. TreeSet: TreeSet là một tập hợp được sắp xếp theo thứ tự tăng dần hoặc giảm dần. Nó không chứa các phần tử trùng lặp và cho phép bạn thực hiện các phép toán như tìm kiếm phần tử nhỏ nhất/lớn nhất. ```java TreeSet<Integer> tapHopSoNguyen = new TreeSet<>(); tapHopSoNguyen.add(5); tapHopSoNguyen.add(3); ``` Những cấu trúc dữ liệu và collection này đều có ứng dụng và điểm mạnh riêng. Lựa chọn cấu trúc dữ liệu phù hợp phụ thuộc vào yêu cầu cụ thể của bạn trong ứng dụng Java của mình.