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

AndroidでConcurrentLinkedQueueを配列に変換する方法【サンプルコード付きで解説】

本記事では、Androidアプリ開発においてConcurrentLinkedQueueを配列に変換する方法を、実際のサンプルコードとともにわかりやすく解説します。

ConcurrentLinkedQueueとは?

ConcurrentLinkedQueueは、リンクノード(連結リスト)ベースの無制限キューです。最大の特徴はスレッドセーフである点で、複数のスレッドから同時にキューの要素へ安全にアクセスできます。

要素はFIFO(先入れ先出し)方式で管理され、新しく追加された要素は常に末尾(tail)から挿入されます。また、null値は許可されていない点にも注意が必要です。キューへの追加にはadd()メソッドを使用し、配列への変換にはtoArray()メソッドを使います。

それでは、AndroidでConcurrentLinkedQueueを配列に変換する手順を見ていきましょう。

ステップ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:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/actionEvent"
        android:textSize="40sp"
        android:layout_marginTop="30dp"
        android:layout_width="wrap_content"
        android:layout_height="match_parent" />
</LinearLayout>

このレイアウトでは、ConcurrentLinkedQueueの要素を画面に表示するためのTextViewを1つ配置しています。LinearLayoutは垂直方向(vertical)に設定され、中央揃えになっています。

ステップ3:MainActivity.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.Arrays;
import java.util.concurrent.ConcurrentLinkedQueue;

public class MainActivity extends AppCompatActivity {
    ConcurrentLinkedQueue<String> concurrentLinkedQueue;

    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        concurrentLinkedQueue = new ConcurrentLinkedQueue<String>();
        final TextView actionEvent = findViewById(R.id.actionEvent);

        // キューに要素を追加
        concurrentLinkedQueue.add("sai");
        concurrentLinkedQueue.add("ram");
        concurrentLinkedQueue.add("krishna");
        concurrentLinkedQueue.add("prasad");
        concurrentLinkedQueue.add("ram");

        // 初期状態のキューを表示
        actionEvent.setText("" + concurrentLinkedQueue);

        // タップ時に配列へ変換して表示
        actionEvent.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                // toArray()でConcurrentLinkedQueueを配列に変換
                Object[] array = concurrentLinkedQueue.toArray();
                actionEvent.setText(Arrays.toString(array));
            }
        });
    }
}

ポイントとなるのはtoArray()メソッドの呼び出し部分です。このメソッドを使うことで、ConcurrentLinkedQueue内の全要素をObject型の配列として取得できます。戻り値を変数に格納し、Arrays.toString()で整形して表示することで、変換結果を視覚的に確認できます。

なお、特定の型の配列が必要な場合は、引数に配列を渡す「toArray(T[] a)」形式も利用可能です。例えば文字列型の配列に変換したい場合は、次のように記述します。

String[] stringArray = concurrentLinkedQueue.toArray(new String[0]);

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

それでは、アプリケーションを実行してみましょう。ここでは、実際のAndroidスマートフォンがPCに接続されているものとします。Android Studioからアプリを実行するには、プロジェクト内のアクティビティファイルのいずれかを開き、ツールバーの「Run」アイコンをクリックしてください。

デバイス選択画面が表示されたら、接続しているモバイル端末を選択します。すると、実機の画面に初期状態のキューの内容が表示され、画面をタップするとtoArray()によって配列へ変換された結果が確認できます。

AndroidでConcurrentLinkedQueueを配列に変換する方法【サンプルコード付きで解説】
  1. Androidで配列からスピナー(Spinner)をプログラム的に作成する方法

    このチュートリアルでは、Androidアプリで配列のデータをもとに、スピナー(Spinner)をプログラムコードから動的に作成して表示する方法を解説します。レイアウトXML、Javaコード、マニフェストファイルの順に、必要な手順をステップごとに見ていきましょう。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。 ステップ2:activity_main.xml にコードを追加する res/layout/activity_main.x

  2. AndroidでJSON配列を反復処理する方法をステップごとに解説

    この記事では、Androidアプリ開発においてJSON配列(JSONArray)を反復処理する方法を、実際のサンプルコードとともにステップ形式で解説します。org.jsonパッケージのJSONObjectとJSONArrayクラスを使用して、JSON文字列からデータを取り出し、画面に表示するまでの一連の流れを学べます。完成イメージ本チュートリアルでは、従業員情報(ID・名前・給与)を含むJSON文字列を解析し、各要素を順番に読み取ってTextViewに表示するシンプルなアプリを作成します。手順1:Android Studioで新規プロジェクトを作成するまず、Android Studioを起動し