Giới thiệu về LinkedBlockingDeque
LinkedBlockingDeque là một triển khai của interface Collection và lớp AbstractQueue. Nó cung cấp các giới hạn tùy chọn dựa trên các nút liên kết, cho phép truyền kích thước bộ nhớ vào constructor để giúp tránh lãng phí bộ nhớ trong Android.
Phương thức peekLast() trả về phần tử cuối cùng của deque mà không xóa nó. Nếu deque rỗng, phương thức trả về null.
Ví dụ minh họa
Bước 1: Tạo project mới
Mở Android Studio, chọn File → New Project và điền các thông tin cần thiết để tạo project mới.
Bước 2: Cấu hình layout (res/layout/activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:app="https://schemas.android.com/apk/res-auto"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<TextView
android:id="@+id/actionEvent"
android:textSize="40sp"
android:layout_marginTop="30dp"
android:layout_width="wrap_content"
android:layout_height="match_parent" />
</LinearLayout>
Ở đây chúng ta sử dụng một TextView để hiển thị các phần tử của LinkedBlockingDeque.
Bước 3: Code logic (src/MainActivity.java)
package com.example.myapplication;
import android.os.Build;
import android.os.Bundle;
import android.support.annotation.RequiresApi;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.util.concurrent.LinkedBlockingDeque;
public class MainActivity extends AppCompatActivity {
LinkedBlockingDeque<String> linkedBlockingDeque;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
linkedBlockingDeque = new LinkedBlockingDeque<>();
final TextView actionEvent = findViewById(R.id.actionEvent);
// Thêm các phần tử vào deque
linkedBlockingDeque.add("sai");
linkedBlockingDeque.add("ram");
linkedBlockingDeque.add("krishna");
linkedBlockingDeque.add("prasad");
linkedBlockingDeque.add("ram");
// Hiển thị toàn bộ deque
actionEvent.setText("" + linkedBlockingDeque);
// Xử lý sự kiện click để hiển thị phần tử cuối
actionEvent.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
actionEvent.setText("" + linkedBlockingDeque.peekLast());
}
});
}
}
Chạy ứng dụng
Kết nối thiết bị Android thật với máy tính. Trong Android Studio, mở file activity và nhấn biểu tượng Run trên thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn triển khai.
Màn hình ban đầu sẽ hiển thị toàn bộ nội dung deque: [sai, ram, krishna, prasad, ram]
Khi click vào TextView, ứng dụng sẽ hiển thị phần tử cuối cùng thông qua peekLast(): ram
Lưu ý quan trọng
peekLast()không làm thay đổi cấu trúc deque- Trả về
nullnếu deque rỗng (khác vớigetLast()ném ngoại lệ) - Phù hợp cho việc kiểm tra phần tử cuối mà không cần xóa