Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Android

วิธีใช้ peekLast() ใน LinkedBlockingDeque ของ Android

ภาพรวมของ LinkedBlockingDeque

LinkedBlockingDeque เป็นการนำ Collection interface และ AbstractQueue class มาใช้งาน ให้ขอบเขตตัวเลือก (optional boundaries) ตามโหนดที่เชื่อมโยง (linked nodes) สามารถส่งขนาดหน่วยความจำไปที่ Constructor เพื่อช่วยป้องกันการสูญเสียหน่วยความจำใน Android

ตัวอย่างการใช้งาน peekLast()

ตัวอย่างนี้สาธิตวิธีใช้เมธอด peekLast() ใน LinkedBlockingDeque บน Android

ขั้นตอนที่ 1: สร้างโปรเจกต์ใหม่

เปิด Android Studio ไปที่ File → New Project แล้วกรอกข้อมูลที่จำเป็นเพื่อสร้างโปรเจกต์ใหม่

ขั้นตอนที่ 2: เพิ่ม Layout XML

เพิ่มโค้ดต่อไปนี้ใน 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>

ในโค้ดด้านบน เราใช้ TextView เพื่อแสดงสมาชิกของ LinkedBlockingDeque

ขั้นตอนที่ 3: เพิ่มโค้ด Java

เพิ่มโค้ดต่อไปนี้ใน 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);
        
        linkedBlockingDeque.add("sai");
        linkedBlockingDeque.add("ram");
        linkedBlockingDeque.add("krishna");
        linkedBlockingDeque.add("prasad");
        linkedBlockingDeque.add("ram");
        
        actionEvent.setText("" + linkedBlockingDeque);
        
        actionEvent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                actionEvent.setText("" + linkedBlockingDeque.peekLast());
            }
        });
    }
}

วิธีทดสอบ

  1. เชื่อมต่ออุปกรณ์ Android จริงกับคอมพิวเตอร์
  2. ใน Android Studio เปิดไฟล์ Activity แล้วคลิกไอคอน Run
  3. เลือกอุปกรณ์มือถือของคุณ
  4. แอปจะแสดงหน้าจอเริ่มต้นพร้อมรายการข้อมูลใน Deque
  5. คลิกที่ TextView จะแสดงค่าสุดท้ายของ Deque ผ่าน peekLast()

คำอธิบายเพิ่มเติม

เมธอด peekLast() จะคืนค่าสมาชิกตัวสุดท้ายของ Deque โดยไม่ลบออก หาก Deque ว่าง จะคืนค่า null ซึ่งต่างจาก pollLast() ที่จะลบและคืนค่าสมาชิกตัวสุดท้าย