WEKO3
アイテム
イミュータブルクラスを利用する必要性に関する調査~ハッシュ値を利用するデータ型を対象として~
https://ipsj.ixsq.nii.ac.jp/records/219045
https://ipsj.ixsq.nii.ac.jp/records/21904574964116-f7e2-43ca-800b-d9e1563ec555
名前 / ファイル | ライセンス | アクション |
---|---|---|
![]() |
Copyright (c) 2022 by the Institute of Electronics, Information and Communication Engineers This SIG report is only available to those in membership of the SIG.
|
|
SE:会員:¥0, DLIB:会員:¥0 |
Item type | SIG Technical Reports(1) | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
公開日 | 2022-07-21 | |||||||||||
タイトル | ||||||||||||
タイトル | イミュータブルクラスを利用する必要性に関する調査~ハッシュ値を利用するデータ型を対象として~ | |||||||||||
言語 | ||||||||||||
言語 | jpn | |||||||||||
資源タイプ | ||||||||||||
資源タイプ識別子 | http://purl.org/coar/resource_type/c_18gh | |||||||||||
資源タイプ | technical report | |||||||||||
著者所属 | ||||||||||||
大阪大学大学院情報科学研究科 | ||||||||||||
著者所属 | ||||||||||||
大阪大学大学院情報科学研究科 | ||||||||||||
著者所属 | ||||||||||||
大阪大学大学院情報科学研究科 | ||||||||||||
著者名 |
橋本, 周
× 橋本, 周
× 肥後, 芳樹
× 楠本, 真二
|
|||||||||||
論文抄録 | ||||||||||||
内容記述タイプ | Other | |||||||||||
内容記述 | Java には複数のオブジェクトを格納するためのさまざまなデータ型が用意されている.その中に,HashMap や HashSet のように格納するオブジェクトのハッシュ値を利用するデータ型がある.このようなハッシュ値を利用するデータ型は,オブジェクトを格納する際にそのオブジェクトのハッシュ値をデータ型の内部に記録する.そのため,格納されたオブジェクトに変更が加わりハッシュ値が変化してしまった場合に,変更後のハッシュ値とデータ型に記録されたハッシュ値との間で不整合が生じてしまう.そこで,このようなハッシュ値を用いるデータ型に格納するオブジェクトのクラスにはその内部状態が生成後に変化しないイミュータブルクラスが推奨されている.しかし,イミュータブルクラスの利用により,ハッシュ値との不整合がどの程度防げているのかについてはこれまで明らかにされてこなかった.そこで本研究では,Java の実プロジェクトにおいてハッシュ値を利用する HashMap と HashSet を対象とした調査を行い,データ型に格納するオブジェクトはイミュータブルクラスにすべきかを明らかにする.HashMap および HashSet に格納された対象プロジェクト内で定義されたクラスを利用していたオブジェクトを対象に,そのクラスがイミュータブルであるか否かの調査を行った.調査の結果,イミュータブルクラスは HashMap では 14.8%,HashSet では 9.7% 利用されていると明らかになった.また,過去バージョンではミュータブルクラスであったが,不整合のバグが発生したためにイミュータブルに変更された事例はまったく見つからなかった. | |||||||||||
書誌レコードID | ||||||||||||
収録物識別子タイプ | NCID | |||||||||||
収録物識別子 | AN10112981 | |||||||||||
書誌情報 |
研究報告ソフトウェア工学(SE) 巻 2022-SE-211, 号 19, p. 1-6, 発行日 2022-07-21 |
|||||||||||
ISSN | ||||||||||||
収録物識別子タイプ | ISSN | |||||||||||
収録物識別子 | 2188-8825 | |||||||||||
Notice | ||||||||||||
SIG Technical Reports are nonrefereed and hence may later appear in any journals, conferences, symposia, etc. | ||||||||||||
出版者 | ||||||||||||
言語 | ja | |||||||||||
出版者 | 情報処理学会 |