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に格納しています。
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でリリース。ゲームで遊ぶより作ろうぜ!を合言葉に、小学生でも起業できる技術力を育成可能で有ることを証明し続けている。 |