<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>第３講 Java言語の基礎４ on 2024年度 発展プログラミング演習（春学期）</title>
    <link>https://ksuap.github.io/2024spring/lesson03/index.html</link>
    <description>Recent content in 第３講 Java言語の基礎４ on 2024年度 発展プログラミング演習（春学期）</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>ja</language>
    <lastBuildDate>Thu, 13 Apr 2023 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://ksuap.github.io/2024spring/lesson03/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>配列とList</title>
      <link>https://ksuap.github.io/2024spring/lesson03/list/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson03/list/index.html</guid>
      <description>配列とList Listとは Listの種類 Listの宣言方法 Listの操作 Listにデータを追加する（add） Listにあるデータを取得する（get） Listにあるデータを更新する（set） Listにあるデータを削除する（remove） Listのサイズを取得する（size） Listの要素の繰り返し（Iterator） サンプルプログラム 例題1 argsをArrayListに変換する 例題2 乱数の生成 出力例 ユーザ定義型 練習問題 まとめ Listとは 第１講で，Javaでは，配列ではなく List を使うように述べました． ここでは，Listの使い方を学びます．
Java言語に限らずListとはデータ構造の一つで，順序を持つ複数のデータを扱います． 要するに配列を置き換えるものです．Listの特徴は次の通りです．
格納された要素をインデックスにより参照できる． 要素を追加・削除できる． 生成時にサイズを決める必要はない． サイズは必要に応じて自動的に増加，縮小する． 途中の要素を削除しても，間が詰められる． 基本的な特徴は配列と同じです． しかし，配列にはない特徴もあります．例えば，サイズを生成時に決める必要がない， やサイズが自動的に増減するなどです．Listは配列よりも優れた特徴を持つ型ですから， 配列ではなく，Listを積極的に使っていきましょう．
Listの種類 Java言語では順序を持つデータの集合をListと呼びます． その実現方法は配列を用いる方法，リンクリストを用いる方法の２種類があります． それぞれの実現方法には向いている点，向いていない点が存在します． そのため，Javaにはそれぞれの実現方法でListを実現する型が 存在します．ArrayListとLinkedListの２つの型です．どちらを使っても処理の違いはありませんが， 処理内容によっては実行速度が違ってくる可能性があります． とはいえ，その違いが効いてくるのは，もっと大規模で，実行速度が重視される場合ですから，今は気にしなくても良いでしょう．
リンクリストの詳細については，FAQ のリンクリストとは何ですかを参照してください．
基本的にArrayListもLinkedListも使い方に違いはありません． 以下の例では，ArrayListで説明していますが，ArrayListをLinkedListに置き換えても 同じ説明が成り立ちますので，適宜読み替えてください．
なお，ArrayListを使うときには，import文が必要です．import java.util.ArrayList; とクラス宣言の前に書きましょう．
Listの宣言方法 Java言語でListを使うには，今までとは少し異なる宣言方法が必要です． データ構造にどのような型の変数を格納するかを型宣言に含める必要があります． 例えば，ArrayListにString型や，Integer型を格納しようとすると，次のような宣言が必要になります．
// String型を格納する ArrayList． ArrayList&amp;lt;String&amp;gt; listForStrings = new ArrayList&amp;lt;String&amp;gt;(); // Integer型を格納する ArrayList． ArrayList&amp;lt;Integer&amp;gt; listForIntegers = new ArrayList&amp;lt;Integer&amp;gt;();上記のように，ArrayList&amp;lt;格納する型&amp;gt; という型として宣言しなければならず，また， 実体を作成するときも，new ArrayList&amp;lt;格納する型&amp;gt;() のように作成しなければいけません． 格納する型が異なるとコンパイルエラーが発生します．</description>
    </item>
    <item>
      <title>ユーザ定義型</title>
      <link>https://ksuap.github.io/2024spring/lesson03/owntype/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson03/owntype/index.html</guid>
      <description>配列とList ユーザ定義型 ユーザ定義の型を定義する Person型 PersonManager型 別の実体を作成する 独自の型をListに入れる 練習問題 まとめ ユーザ定義の型を定義する Javaでは，自分で型を作成することもできます． まずは，人の氏名（姓，名）を持つ型 Person を作成してみましょう．
Person型 public class Person{ String givenName; String familyName; }これで，Person型の作成は完了です．Person 型は2つの String 型のフィールド変数 を持っています．givenName（名）とfamilyName（姓）です．
このプログラムだけでは何もできませんので，Person型を利用するプログラムPersonManagerを作成しましょう．
PersonManager型 public class PersonManager{ void run(){ Person person1 = this.createPerson(&amp;#34;Haruaki&amp;#34;, &amp;#34;Tamada&amp;#34;); this.printPerson(person1); } Person createPerson(String name1, String name2){ Person person = new Person(); person.givenName = name1; person.familyName = name2; return person; } void printPerson(Person person){ System.out.printf(&amp;#34;%s, %s%n&amp;#34;, person.familyName, person.givenName); } public static void main(String[] args){ PersonManager app = new PersonManager(); app.</description>
    </item>
    <item>
      <title>練習問題</title>
      <link>https://ksuap.github.io/2024spring/lesson03/assignments/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson03/assignments/index.html</guid>
      <description>配列とList ユーザ定義型 練習問題 乱数値100個の統計 素数の一覧 素因数分解 試験成績の分析 まとめ ここに挙げている問題では配列の使用は mainメソッドの引数として与えられた変数 argsのみとし， その他は，List (ArrayListもしくはLinkedList)を使用してください．argsを 受け渡す分には配列を使って構いませんが，新たに配列を作成しないようにしてください．
1. 乱数値100個の統計 0以上，1000未満の乱数を100個取得してください． それらの合計値，最大値，最小値，平均を求めてください． 出力は，まず，合計，最大値，最小値，平均を１行で出力してください． その次に，得られた乱数値を出力してください．ただし，10個出力するごとに改行を入れてください． クラス名は，StatsValues としてください．
平均をDouble型として求めるには，Integer型の合計値sumをDouble型に変換する必要があります． Double.valueOf(sum)でDouble型に変換でき，それ以降Double型として扱えるようになります．
整数乱数を生成する 0以上，1000未満の乱数値を取得するには，Random型を利用します．Random型の 利用には，import java.util.Randomがクラス宣言の前に必要です． 以下のコードで1000未満の正数乱数が得られます．
なお，Random型の初期化は最初に１度だけ行うようにしてください． 乱数を得るたびにRandom型を初期化すると乱数にならない場合があります．
Random random = new Random(); Integer randomValue = random.nextInt(1000); // =&amp;gt; 0以上1000未満の正の乱数値が得られる．出力例 乱数ですので，必ずしもこの通りの結果にはなりません．
$ java StatsValues 合計: 45262, 最大値: 995, 最小値: 11, 平均値: 452.620000 252 37 553 448 504 144 969 928 177 262 836 15 198 496 650 977 102 630 348 351 820 59 288 435 622 677 103 588 576 683 916 138 154 528 179 411 578 740 715 372 351 105 41 203 596 746 195 153 469 328 166 189 754 862 541 84 165 428 567 76 848 730 947 439 376 258 330 365 896 144 688 27 380 573 377 752 19 70 965 605 551 355 103 860 629 660 528 465 995 134 154 574 11 763 268 443 723 872 233 6742.</description>
    </item>
    <item>
      <title>まとめ</title>
      <link>https://ksuap.github.io/2024spring/lesson03/summary/index.html</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      <guid>https://ksuap.github.io/2024spring/lesson03/summary/index.html</guid>
      <description>配列とList Listとは Listの種類 Listの宣言方法 Listの操作 Listにデータを追加する（add） Listにあるデータを取得する（get） Listにあるデータを更新する（set） Listにあるデータを削除する（remove） Listのサイズを取得する（size） Listの要素の繰り返し（Iterator） サンプルプログラム 例題1 argsをArrayListに変換する 例題2 乱数の生成 出力例 ユーザ定義型 ユーザ定義の型を定義する Person型 PersonManager型 別の実体を作成する 独自の型をListに入れる 練習問題 乱数値100個の統計 素数の一覧 素因数分解 試験成績の分析 まとめ まとめ 配列とList Listの種類 Listの宣言方法 ArrayList&amp;lt;データ型&amp;gt; list = new ArrayList&amp;lt;データ型&amp;gt;(); Listに格納するデータ型を指定しなければならない． ArrayList&amp;lt;データ型&amp;gt; list = new ArrayList&amp;lt;&amp;gt;(); 後ろのデータ型は省略しても良い． Listの操作 Listへの追加: list.add(value) Listから取得: list.get(index) Listの更新: list.set(index, value) Listからの削除: list.remove(index) Listのサイズ: list.size() Listの要素の繰り返し (Iterator) 典型的な方法 Iterator 拡張for文 List利用の例 ユーザ定義型 作成したプログラムのクラス名を型として扱える． フィールドを宣言するだけの簡単な型が作成できる． フィールドの参照，代入には，その型の変数を介して行う． もちろん，メソッドも定義できる． 独自の型もListに格納できる． その他 過去に作ったプログラムのメソッドを呼び出せる． 呼び出し元，呼び出し先のプログラムを同じディレクトリに置いておくこと． 整数乱数の取得方法 Random型を利用するときは，クラス宣言の前にimport java.</description>
    </item>
  </channel>
</rss>