{"metadata":{"_oai":{"id":"oai:ipsj.ixsq.nii.ac.jp:00219045","sets":["1164:1384:10896:10984"]},"path":["10984"],"owner":"44499","recid":"219045","title":["イミュータブルクラスを利用する必要性に関する調査~ハッシュ値を利用するデータ型を対象として~"],"pubdate":{"attribute_name":"公開日","attribute_value":"2022-07-21"},"_buckets":{"deposit":"6102f921-3fa3-4e21-a7a4-8f9afbb72381"},"_deposit":{"id":"219045","pid":{"type":"depid","value":"219045","revision_id":0},"owners":[44499],"status":"published","created_by":44499},"item_title":"イミュータブルクラスを利用する必要性に関する調査~ハッシュ値を利用するデータ型を対象として~","author_link":["570888","570889","570887"],"item_titles":{"attribute_name":"タイトル","attribute_value_mlt":[{"subitem_title":"イミュータブルクラスを利用する必要性に関する調査~ハッシュ値を利用するデータ型を対象として~"}]},"item_type_id":"4","publish_date":"2022-07-21","item_4_text_3":{"attribute_name":"著者所属","attribute_value_mlt":[{"subitem_text_value":"大阪大学大学院情報科学研究科"},{"subitem_text_value":"大阪大学大学院情報科学研究科"},{"subitem_text_value":"大阪大学大学院情報科学研究科"}]},"item_language":{"attribute_name":"言語","attribute_value_mlt":[{"subitem_language":"jpn"}]},"item_publisher":{"attribute_name":"出版者","attribute_value_mlt":[{"subitem_publisher":"情報処理学会","subitem_publisher_language":"ja"}]},"publish_status":"0","weko_shared_id":-1,"item_file_price":{"attribute_name":"Billing file","attribute_type":"file","attribute_value_mlt":[{"url":{"url":"https://ipsj.ixsq.nii.ac.jp/record/219045/files/IPSJ-SE22211019.pdf","label":"IPSJ-SE22211019.pdf"},"format":"application/pdf","billing":["billing_file"],"filename":"IPSJ-SE22211019.pdf","filesize":[{"value":"1.1 MB"}],"mimetype":"application/pdf","priceinfo":[{"tax":["include_tax"],"price":"0","billingrole":"12"},{"tax":["include_tax"],"price":"0","billingrole":"44"}],"accessrole":"open_login","version_id":"824157e2-d47d-4893-a606-36d16e5576bf","displaytype":"detail","licensetype":"license_note","license_note":"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."}]},"item_4_creator_5":{"attribute_name":"著者名","attribute_type":"creator","attribute_value_mlt":[{"creatorNames":[{"creatorName":"橋本, 周"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"肥後, 芳樹"}],"nameIdentifiers":[{}]},{"creatorNames":[{"creatorName":"楠本, 真二"}],"nameIdentifiers":[{}]}]},"item_4_source_id_9":{"attribute_name":"書誌レコードID","attribute_value_mlt":[{"subitem_source_identifier":"AN10112981","subitem_source_identifier_type":"NCID"}]},"item_4_textarea_12":{"attribute_name":"Notice","attribute_value_mlt":[{"subitem_textarea_value":"SIG Technical Reports are nonrefereed and hence may later appear in any journals, conferences, symposia, etc."}]},"item_resource_type":{"attribute_name":"資源タイプ","attribute_value_mlt":[{"resourceuri":"http://purl.org/coar/resource_type/c_18gh","resourcetype":"technical report"}]},"item_4_source_id_11":{"attribute_name":"ISSN","attribute_value_mlt":[{"subitem_source_identifier":"2188-8825","subitem_source_identifier_type":"ISSN"}]},"item_4_description_7":{"attribute_name":"論文抄録","attribute_value_mlt":[{"subitem_description":"Java には複数のオブジェクトを格納するためのさまざまなデータ型が用意されている.その中に,HashMap や HashSet のように格納するオブジェクトのハッシュ値を利用するデータ型がある.このようなハッシュ値を利用するデータ型は,オブジェクトを格納する際にそのオブジェクトのハッシュ値をデータ型の内部に記録する.そのため,格納されたオブジェクトに変更が加わりハッシュ値が変化してしまった場合に,変更後のハッシュ値とデータ型に記録されたハッシュ値との間で不整合が生じてしまう.そこで,このようなハッシュ値を用いるデータ型に格納するオブジェクトのクラスにはその内部状態が生成後に変化しないイミュータブルクラスが推奨されている.しかし,イミュータブルクラスの利用により,ハッシュ値との不整合がどの程度防げているのかについてはこれまで明らかにされてこなかった.そこで本研究では,Java の実プロジェクトにおいてハッシュ値を利用する HashMap と HashSet を対象とした調査を行い,データ型に格納するオブジェクトはイミュータブルクラスにすべきかを明らかにする.HashMap および HashSet に格納された対象プロジェクト内で定義されたクラスを利用していたオブジェクトを対象に,そのクラスがイミュータブルであるか否かの調査を行った.調査の結果,イミュータブルクラスは HashMap では 14.8%,HashSet では 9.7% 利用されていると明らかになった.また,過去バージョンではミュータブルクラスであったが,不整合のバグが発生したためにイミュータブルに変更された事例はまったく見つからなかった.","subitem_description_type":"Other"}]},"item_4_biblio_info_10":{"attribute_name":"書誌情報","attribute_value_mlt":[{"bibliographicPageEnd":"6","bibliographic_titles":[{"bibliographic_title":"研究報告ソフトウェア工学(SE)"}],"bibliographicPageStart":"1","bibliographicIssueDates":{"bibliographicIssueDate":"2022-07-21","bibliographicIssueDateType":"Issued"},"bibliographicIssueNumber":"19","bibliographicVolumeNumber":"2022-SE-211"}]},"relation_version_is_last":true,"weko_creator_id":"44499"},"id":219045,"updated":"2025-01-19T14:56:40.935979+00:00","links":{},"created":"2025-01-19T01:19:22.760560+00:00"}