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

AndroidでArrayBlockingQueueのサイズを取得する方法を解説

本記事では、AndroidアプリでArrayBlockingQueueのサイズを取得する方法を解説します。まず、ArrayBlockingQueueについて簡単に確認しておきましょう。ArrayBlockingQueueはFIFO(先入れ先出し)方式で動作するキューであり、最初に追加された要素が最も長く保持され、最後に追加された要素が最も短い期間保持されるという特徴があります。

ArrayBlockingQueueとは

ArrayBlockingQueueは、java.util.concurrentパッケージに含まれるスレッドセーフなキューの実装です。配列をベースとしており、容量が固定されている点が大きな特徴です。マルチスレッド環境でも安全に要素の追加・削除を行えるため、プロデューサー・コンシューマー型の処理などに適しています。

実装手順

ステップ1:新規プロジェクトの作成

Android Studioで新しいプロジェクトを作成します。「File」→「New Project」を選択し、必要な情報をすべて入力してプロジェクトを作成してください。

ステップ2:レイアウトファイルの編集

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を配置しています。

ステップ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.size());
            }
        });
    }
}

上記のコードでは、容量50のArrayBlockingQueueを作成し、4つの文字列要素を追加しています。アプリ起動時にはキューの内容全体がTextViewに表示され、TextViewをタップするとsize()メソッドによって現在の要素数が取得・表示される仕組みです。

アプリの実行と結果確認

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

AndroidでArrayBlockingQueueのサイズを取得する方法を解説

次にTextViewをタップすると、キュー内の要素数(この例では4)が画面に表示されます。

AndroidでArrayBlockingQueueのサイズを取得する方法を解説

まとめ

ArrayBlockingQueueのサイズ取得は、size()メソッドを呼び出すだけで簡単に実現できます。容量が固定されたスレッドセーフなキューを扱いたい場合にぜひ活用してください。

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

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

  2. AndroidスマホでAirTagを検出する方法|紛失タグの見つけ方を徹底解説

    Appleの「AirTag」は、鍵や財布、バッグなど、あらゆる持ち物の位置を追跡できる便利なアイテムとして近年急速に普及しています。しかし、その利便性の裏側では、知らないうちに自分の所持品へ取り付けられ、居場所を監視される「ストーカー行為」への懸念も高まっています。特にAndroidユーザーにとっては、iPhoneと比べて検知の仕組みが異なるため、注意が必要です。iPhoneやiPadをお使いの方なら、他人のAirTagが自分と一緒に移動している場合、デバイスに自動的にアラートが表示されます。ところがAndroidユーザーの場合、同じようにはいかず、いくつかの手順を踏まなければ、自分の持ち物に