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で配列からスピナー(Spinner)をプログラム的に作成する方法
このチュートリアルでは、Androidアプリで配列のデータをもとに、スピナー(Spinner)をプログラムコードから動的に作成して表示する方法を解説します。レイアウトXML、Javaコード、マニフェストファイルの順に、必要な手順をステップごとに見ていきましょう。 ステップ1:新規プロジェクトを作成する Android Studioを起動し、メニューから「File」→「New Project」を選択します。必要な項目をすべて入力して、新しいプロジェクトを作成してください。 ステップ2:activity_main.xml にコードを追加する res/layout/activity_main.x
-
AndroidでJSON配列を反復処理する方法をステップごとに解説
この記事では、Androidアプリ開発においてJSON配列(JSONArray)を反復処理する方法を、実際のサンプルコードとともにステップ形式で解説します。org.jsonパッケージのJSONObjectとJSONArrayクラスを使用して、JSON文字列からデータを取り出し、画面に表示するまでの一連の流れを学べます。完成イメージ本チュートリアルでは、従業員情報(ID・名前・給与)を含むJSON文字列を解析し、各要素を順番に読み取ってTextViewに表示するシンプルなアプリを作成します。手順1:Android Studioで新規プロジェクトを作成するまず、Android Studioを起動し