9]リストJavaでは配列とは別にListがあります。配列では要素を追加したり削除したりできません。JavaのListは2つの選択肢があります。ArrayListとLinkedListです。ArrayListは配列の状の要素管理を行っていて要素番号による参照や更新を得意としますが、要素の挿入を多用する場合は効率的ではありません。LinkedListは要素が鎖状にリンクしている管理方法で要素の挿入がリンクを換えるだけで済むので効率的に処理できますが、逆に要素番号で指示されると端から数えるので時間がかかります。作業に合わせて選択します。Javaではリストは配列とは別物ですから、たくさんの説明が必要です。Javascriptのpush/popの例に合わせて作ってみました。add()でリストに取り込んでremove()で取り出して書き出しています。htmlの表の代わりに配列から読み込んでいます。仕組みを理解するために、一回のadd()ごとに戻値と配列を書いていき、4つ読んだら一回のremove()ごとに戻値と配列を書いています。hokke]hokke|[saba]saba|[]ArrayListを使っていますがLinkedListでも同様にできます。ArrayListのインスタンスを作っていますが、宣言は単にListとしています。Array,Linkedが共通に持っている機能しか使っていないので、汎用性を持たせるため通常はこのようにします。<String>は入れる変数のクラスを宣言します。後ろの<>はこのように省略できます。相当するラッパークラスで宣言します。add()の戻値はjavascriptのpopに合わせて書きましたが、普通使うことはありません。popにあたるものはなくて、remove()は要素番号を指定しなければなりません。Listの主要なメソッド配列の様に要素番号を指定して値を参照したり、書き換えたりもできます。角括弧ではなく、メソッドを使います。指定された要素が最初に検出された位置を返す。要素の数を返す値の出し入れについて、以下にまとめておきます。色付き文字はLinkedListにのみ使えるメソッドです。e)とremove()を基本に記憶するようにと省きました。pollなども、使えます。語感や他言語との互換を気にしなければ覚えておく必要はないでしょう。LinkedList<>();としますが、popにあたるremoveLastなど、LinkedList特有のメソッドを使うときには次のように宣言します。LinkedList<>();addFirst()の戻値はvoid(つまり無し)なので、取得せず、voidと書いています。saba]hokke|[saba]saba|[]リストに初期値を設定するJavaのリストに初期値を設定したり、複数の要素をまとめて追加する方法です。shishamo](namelist1)はArrays.asList()で配列からリストを作ることができますから、これをListのインスタンスに代入できます。この方法では要素数が固定になりますから、要素の増減はできません。各要素への参照と値の変更のみならこれで済ませられます。(namelist2)はArrays.asList()で作ったリストを元に新たなLinkedListを作っています。ArrayListでもかまいません。リストを初期値に新たなリストを作ることができ、このリストは要素の増減が可能です。(namelist3)は複数の要素をまとめて追加する方法です。要素の列記からでも、配列からでも追加できます。ここで、三項演算子(条件?trueの時の式:falseの時の式)も使いました。javascriptでは条件演算子と呼ぶようです。ifの中で変数を定義すると外ではアクセスできませんから、これは便利です。配列中の値を探して削除JavaでもindexOf()が使えますが、remove()で値を直接指定することもできます。方法1indexOf("検索値")は配列中の要素で"検索値"と一致するものを探して位置(index)を返します。見つからない時は-1です。indexOf("検索値",開始位置)はありません。一つ見つかったらそれ以上は探しません。remove(index)は、index位置の要素をひとつ削除して、削除した要素の値を返します。元のリストは書き換えられて要素数が減ります。ここのプログラムでは3項演算子の中に書かれているのでわかりにくいかもしれません。方法2remove(削除値)で、最初に見つかった要素をひとつ削除します。なければfalseを返します。削除されたリストは要素数が減ります。split("区切り文字")は文字列を区切り文字で区切って、分けたものを要素にした配列を生成して返します。Javascriptの例とできるだけ同じにするために使用しました。tama]リストのリストリストは関数を呼び出す時の引数や戻値にすると便利なことが多いですが、リストのリストを必要とする場面がありました。Javaでもできます。個数が一定しない数の列があります。このリストが3つあって、関数に引数として渡します。現在は3つですが将来的に増える可能性もあるので、こちらもリストにします。<List<String>>.....<>の部分が、ポイントです。LinkedList<>();Collections.addAll(dessertlist,baselist,saucelist,toppinglist);baselist,saucelist,toppinglistという分類名は配列やリストでは失われて番号になりますが、実際に作成したのは数学関係のプログラムでしたので、0,1,2という連番で構いませんでした。必要ならListの代わりにMapを使えば解決します。イチゴ練乳アイスbaselistに"かき氷"を加えたければ、dessertlist.get(0).add("かき氷");drinkメニューを加えたければ、先にdrinklistを作っておいて、dessertlist.add(drinklist);で可能です。ソーダ]]最後の例(!!)で、リストに入るのは参照であることがわかります。理解していない仕組みがあるのかもしれません。安達順一(2018-10-14)https://dabiyone.com/。