icon
icon

Scalaでlist(リスト)を扱う方法【初心者向け】

【プログラミング初心者向け】Scalaでlistを使う方法を解説。特徴や使い方(要素追加・list同士の連結・要素を加工するmapメソッド)など、listを使用するうえで欠かせない情報をわかりやすくまとめました!

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

今回は、Scalaでlistを扱う方法を解説します。

Scalaについてそもそもよく分からないという方は、Scalaとは何なのか解説した記事をまずご覧ください。

 

 

田島悠介

今回は、Scalaに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

listの使い方と書き方について詳しく説明していくね!

大石ゆかり

お願いします!

 

Scalaのlistとは

Scalaのlistとは、格納されたオブジェクトを変更することができない配列のことです。

このことをimmutableと言い、中身を変更できない永続データ構造で、不変オブジェクトと呼ばれます。

永続データ構造のlistとScalaという言語の愛称は非常に良いです。

listはScalaのような関数型言語で重要なコレクションとして利用されます。

また、不変オブジェクトですが、オブジェクトを先頭に追加することが可能です。

listは、順次アクセスや再帰呼び出し性能が高いですが、ランダムアクセスは遅いです。

listとは違い、中身を変更できる配列をarrayといいます。

 

Scalaのlistの使い方

先頭に要素追加

文法

追加する値 +: (list).toList
追加する値 :: (list.toList

解説

1行目と2行目の結果は同じものになります。

listで生成された配列の先頭に追加する値で指定された値を追加します。

+:や::が先頭に追加する命令文です。

 

末尾に要素追加

文法

(list).toList :+追加する値

解説

listで生成された配列の最後尾に追加する値で指定された値を追加します。

:+が最後尾に追加する命令文です。

 

List同士を連結

文法

(連結するlist1).toList ::: (連結するlist2).toList
(連結するlist1).toList :: (連結するlist2).toList

解説

1行目と2行目では連結後の状態が異なる点に気を付けましょう。

1行目では、:::連結するlist1と連結するlist2をを連結したlistを作成することができます。

2行目では、::連結するlist2の中に、連結するlist1というlistを入れ子にして連結します。

入れ子とは、(3,4,5)という配列の中に、((0,1,2),3,4,5)というように、(0,1,2)という配列が連結されることです。

 

要素を加工するmapメソッド

文法

List(複数の要素).map(num => num * 2)

解説

Listで生成された複数の要素に対して、各要素を、mapを利用して要素を変数numに格納してnumを2倍した数値を生成して、mapに格納しています。

 

[PR] 無料で現役エンジニアから学べる

Scalaのlistを実際に書いてみよう

foreach文で配列の内容を取得する

ソースコード

object Main extends App {
(1 to 3).toList.foreach( num => println("連番:" + num) )
}

表示結果

連番:1
連番:2
連番:3

解説

1行目のobject Main extends App {では、ScalaのAppという機能をextend(継承し再利用)してMainという名前のObject(オブジェクト)を宣言しています。

2行目の(1 to 3).toList.foreach( num => println(“連番:” + num) )では、(1 to 3)で生成したlistの1から3の数字をnumに代入できる間処理を続けるforeachを利用しています。

大石ゆかり

内容分かりやすくて良かったです!

田島悠介

ゆかりちゃんも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

今回は、Scalaでlistを使う方法を解説しました。

 

また、現役エンジニアから学べる無料のプログラミング体験会も実施しているので、ぜひ参加してみてください。

この記事を監修してくれた方

中本賢吾(なかもとけんご)
アジマッチ有限会社 代表取締役社長

開発実績:PHPフレームワークを利用した会員制SNS・ネットショップ構築、AWSや専用サーバー下でLinuxを使用したセキュアな環境構築、人工知能を利用したシステム開発、店舗検索スマホアプリ開発など。

その他にも地域の職業プログラマー育成活動を行い、2018年には小学生がUnityで開発したオリジナルAndroidアプリをGooglePlayでリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学で学習していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、マンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう カウンセラーやエンジニア・デザイナー があなたの相談に真摯に向き合います。

「自分に合っているか診断してほしい」
「漠然としているが話を聞いてみたい」

こんなささいな悩みでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する