Android
 Computer >> コンピューター >  >> プログラミング >> Android

AndroidでArrayBlockingQueueが空かどうかを確認する方法を解説

ArrayBlockingQueueとは?

ArrayBlockingQueueは、java.util.concurrentパッケージに含まれる「有界ブロッキングキュー」の一種です。FIFO(First In First Out:先入れ先出し)方式で要素を管理しており、最初に追加した要素が最も長くキューに残り、最後に追加した要素ほど短い期間しか残りません。

この記事では、AndroidアプリにおいてArrayBlockingQueueが空かどうかを判定する方法を、サンプルコードとともにわかりやすく解説します。キューが空かどうかのチェックにはisEmpty()メソッドを使用します。

実装手順

ステップ1:新規プロジェクトを作成する

Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成しましょう。

ステップ2:レイアウトファイル(activity_main.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>

上記のコードでは、ArrayBlockingQueueの要素や判定結果を表示するためのTextViewを1つ配置しています。

ステップ3:MainActivity.javaを編集する

src/MainActivity.javaに以下のコードを追加します。

package com.example.myapplication;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;
import java.util.concurrent.ArrayBlockingQueue;

public class MainActivity extends AppCompatActivity {
   ArrayBlockingQueue arrayBlockingQueue;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      arrayBlockingQueue = new ArrayBlockingQueue<>(50);
      final TextView actionEvent = findViewById(R.id.actionEvent);
      arrayBlockingQueue.add("sai");
      arrayBlockingQueue.add("ram");
      arrayBlockingQueue.add("krishna");
      arrayBlockingQueue.add("prasad");
      actionEvent.setText("" + arrayBlockingQueue);
      actionEvent.setOnClickListener(new View.OnClickListener() {
         @SuppressLint("SetTextI18n")
         @Override
         public void onClick(View v) {
            actionEvent.setText("" + arrayBlockingQueue.isEmpty());
         }
      });
   }
}

このコードでは、容量50のArrayBlockingQueueインスタンスを生成し、「sai」「ram」「krishna」「prasad」という4つの文字列要素を追加しています。TextViewをタップすると、isEmpty()メソッドの戻り値が画面に表示される仕組みです。

なお、最近のAndroid Studioのプロジェクトテンプレートではandroidxライブラリが標準となっているため、環境によってはimport文をandroid.support.v7.app.AppCompatActivityからandroidx.appcompat.app.AppCompatActivityに読み替えてください。

アプリを実行して動作を確認する

それでは、アプリケーションを実行してみましょう。ここでは、実際のAndroid端末をパソコンに接続しているものとします。Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルを開き、ツールバーの「Run」アイコンをクリックします。接続済みのモバイルデバイスを選択すると、端末に以下のような初期画面が表示されます。

AndroidでArrayBlockingQueueが空かどうかを確認する方法を解説

続いて、画面上のTextViewをタップしてみてください。キューが空かどうかが判定され、以下のように結果が表示されます。

AndroidでArrayBlockingQueueが空かどうかを確認する方法を解説

この例では、キューにまだ4つの要素が残っているため、isEmpty()はfalseを返します。remove()やclear()などですべての要素を取り除いた後であれば、trueが表示されます。このようにisEmpty()メソッドを使えば、ArrayBlockingQueueの状態を簡単に確認できます。

  1. Androidで隠しアプリを見つける6つの方法|設定から偽装アプリの見分け方まで

    スマートフォンでは、使わないアプリや人に見られたくないアプリを無効化・非表示にできますが、端末自体にも最初から目立たないように配置されているシステムアプリが数多く存在します。「Androidで隠しアプリを見つけるにはどうすればいいのか」とお悩みの方に向けて、誰でも実践できる6つの定番方法を詳しく解説します。なお、Android端末はメーカーや機種によって仕様が異なるため、紹介する手順どおりに進めるには専用ランチャーの導入が必要なケースもあります。また、OSのバージョンに応じて操作を調整することもあるでしょう。ただし、最終的な結果は同じです。端末内のすべてのアプリを確認できるようになります。1.

  2. Androidでダウンロードしたファイルを見つける5つの簡単な方法

    Androidスマホでファイルをダウンロードしたのに、保存先がわからなくなった経験はありませんか?実はこれはよくあること。ただし、ダウンロードしたファイルが勝手に消えてしまうことはありません。写真や動画などのあらゆるダウンロードファイルは、必ずスマホ内のどこかに保存されています。今回は、Androidでダウンロードファイルにアクセスできる5つの方法をわかりやすく解説します。1. 通知パネルからすぐにアクセスするまずは最も手軽な方法です。Androidでファイルをダウンロードすると、通知バーに通知が表示されます。この通知を利用すれば、ダウンロードした場所へすぐに移動できます。ファイルをダウンロー