Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Listかもしれない
Search
irof
January 30, 2023
Programming
2
470
Listかもしれない
【オンライン】 JJUGナイトセミナー「コレクションフレームワーク特集」1/30(月) 開催
https://jjug.doorkeeper.jp/events/149811
irof
January 30, 2023
Tweet
Share
More Decks by irof
See All by irof
プールにゆこう
irof
2
120
Javaマルチバージョンビルディング
irof
1
260
データ/データベースパターン
irof
0
110
勉強会で話すハードルを下げてみる
irof
0
22
Gatlingによる負荷テスト入門
irof
7
1.8k
これからのJavaのとっかかりを掴む
irof
0
7.7k
ドメインモデルのつくり方
irof
2
460
ふつうのプログラマのふつうの設計
irof
16
18k
Javaの冗長な構文を愛でてみる / java-redundant-syntax
irof
3
670
Other Decks in Programming
See All in Programming
Micro Frontends for Java Microservices - Devnexus 2024
mraible
PRO
0
470
CA.swift19 恋するAIアプリ開発の裏側
oskmr
0
360
if constexpr文はテンプレート世界のラムダ式である
faithandbrave
3
630
デフォルトにして至高、RubyMineの大好きな所
ruzia
0
190
はてなにおける CSS Modules、及び CSS Modules に足りないもの / CSS Modules in Hatena, and CSS Modules missing parts
mizdra
6
880
Azure OpenAI Serviceのプロンプトエンジニアリング入門
tomokusaba
3
620
CQRS/ES avec Symfony, c’est (trop) bien !
jeremyfreeagent
1
640
Rethinking UI building strategies @ SFI 2024
letelete
0
270
OpenAPIを中心に考えるAPI開発入門 / Introduction to API Development with a Focus on OpenAPI
seike460
PRO
2
160
ONE WEDGE_company_guide
1wedge_one
0
440
Goのエラースタックトレースの歴史と今後
sonatard
6
600
Anthropic Cookbook のおすすめレシピ
schroneko
6
680
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
455
32k
Building an army of robots
kneath
300
41k
Documentation Writing (for coders)
carmenintech
59
3.9k
Why You Should Never Use an ORM
jnunemaker
PRO
51
8.6k
Imperfection Machines: The Place of Print at Facebook
scottboms
259
12k
Build your cross-platform service in a week with App Engine
jlugia
225
17k
Code Reviewing Like a Champion
maltzj
513
39k
VelocityConf: Rendering Performance Case Studies
addyosmani
320
23k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Java REST API Framework Comparison - PWX 2021
mraible
PRO
18
6.9k
We Have a Design System, Now What?
morganepeng
42
6.7k
Happy Clients
brianwarren
91
6.4k
Transcript
-JTU͔͠Εͳ͍ ++6(φΠτηϛφʔʮίϨΫγϣϯϑϨʔϜϫʔΫಛूʯ 5
ࠓͷ 話 気 ……
ίϨΫγϣϯͱ
ίϨΫγϣϯͱ ίϨΫγϣϯʢࡶʣ ίϨΫγϣϯʢͱΓ͋͑ͣʣ ίϨΫγϣϯʢͪΌΜͱʣ ͦͷଞͷίϨΫγϣϯ ίϨΫγϣϯͱྻ
ίϨΫγϣϯͱ ʢࡶʣ
ࡶͳίϨΫγϣϯ ཁૉΛෳ·ͱΊͯѻ͏ͷ ෳʹO ೖΕɺ͔ͨ·Γɺଋɺίϯς φɺू߹ɺɺɺ
ίϨΫγϣϯͷؒ $PMMFDUJPOT'SBNFXPSLʢࠓճʣ ྻ 0QUJPOBM 4USFBN ଞͷίϨΫγϣϯ 覚
ίϨΫγϣϯ ʢͱΓ͋͑ͣʣ
ͱΓ͋͑ͣ -JTU ͍͍ͩͨ͜ΕͰࣄΓΔ .BQ ΩʔͰҰຊΓ͍ͨ͠ͱ͖ʹ
લఏΠϯλϑΣʔεͱ࣮Ϋϥε ίϨΫγϣϯجຊతʹΠϯλ ϑΣʔεͰѻ͍·͢ɻ ࣮ΫϥεΠϯελϯεੜ ࣌ͳͲಛผͳ߹͚ͩɻ ͰͱΓ͍͍͋͑ͣɻ
-JTUͱΓ͋͑ͣ͑Δ Πϯελϯε͕࡞ΕΔ ཁૉΛՃͰ͖Δ ϧʔϓͰ͖Δ
-JTUͱΓ͋͑ͣ͑Δ List完全
શʹϚελʔͨ͠ ʮͱΓ͋͑ͣ͑Δʯ͜ΕΛ ͪΌΜͱͰ͖Ε͍͍ɻ ͱΓ͋͑ͣ"SSBZ-JTU ͱΓ͋͑ͣδΣωϦΫεॻ͍ͱ͘ BEE GPSFBDIϧʔϓ
ͪΌΜͱ͑ͯͳ͍ྫ
.BQͱΓ͋͑ͣ͑Δ Πϯελϯε͕࡞ΕΔ ཁૉΛՃͰ͖Δ ཁૉΛऔΓग़ͤΔ
.BQͱΓ͋͑ͣ͑Δ
શʹϚελʔͨ͠ ʮͱΓ͋͑ͣ͑Δʯ͜ΕΛ ͪΌΜͱͰ͖Ε͍͍ɻ )BTI.BQ LFZ)BTI.BQͰѻ͑Δͷ ͱΓ͋͑ͣ4USJOHͰ͍͍ɻ͋ͱͰΘ͔Δ
ͱΓ͋͑ͣίϨΫγϣϯ͑Δ ͬͯݴ͍͍ͬͯɻ ͜ΕͰۀॲཧॻ͚ͳ͘ͳ͍ɻ Α͘Θ͔ΒΜͷग़͖ͯͨΒʮͱΓ͋ ͑ͣʯͷ࣍ʹਐΈ·͠ΐ͏ɻ ͍͖ͳΓίϨΫγϣϯશΫϥεͱ͔શϝ ιουͷ͍ํͱ͔֮͑ͳ͍͍ͯ͘Αɺ΄ Μͱʹɻ
ͱΓ͋͑ͣʹ͚ম͖ਕ ଘࡏνΣοΫDPOUBJOT আSFNPWF ͜Ε͘Β͍ͰʮͰ͖ͳ͍ॲཧʯͦ͏ ͳ͍ͱࢥ͏ ޮѱ͍ͱ͔อकੑѱ͍ͱ͔μα͍ͱ ͔͋Δ͚Ͳɺͦ͜Εํͳ͍
ίϨΫγϣϯ ʢͪΌΜͱʣ Java SE 話
$PMMFDUJPOT'SBNFXPSL ίϨΫγϣϯͷϑϨʔϜϫʔΫ +BWBͰಋೖ͞Εͨͷ ʢલʣ ʜʜಋೖͩͱࢥͬͯͨΑɻϓϩ δΣΫτͬͯͨ࣌7FDUPSͱ͔ग़͖ͯ ͔ͨΒɻ
$PMMFDUJPOT'SBNFXPSL ΠϯλϑΣʔεͱ࣮Λ͚Δ ͷ͕ྲྀߦ͍ͬͯͨ࣌ ࠓ͑ͯΔͷ͜Εͷ͓͔͛ײ͋Δ ϚγϯεϖοΫ͕ශऑͳ࣌ Α͘Ͱ͖ͯΔʢਖ਼ʣ
$PMMFDUJPOT'SBNFXPSLͷ ΠϯλϑΣʔεͨͪ 覚
ΫϥεೖΕΔͱΧΦεʹͳΔ 知
ͬ͠ͱ͚ -JTU .BQ $PNQBSBCMF $PNQBSBUPS 4FU 4PSUFE4FU
4PSUFE.BQ ൪֎ $PMMFDUJPO ΄͔ 各層 中 話
ίϨΫγϣϯͪΌΜͱ͑Δ ͬͯͳΜΑʁͱͳΓ·͢ɻ ͳͷͰͪΌΜͱΛϨϕϧʹ͚ ͯΈΔɻ
ͪΌΜͱ ΠϯλϑΣʔεΛબͰ͖Δ ࣮ΛબͰ͖Δ ඇίϨΫγϣϯͱมͰ͖Δ ʢ͜·͝·ͨࣝ͠κʔϯʣ ίϨΫγϣϯΛ࣮Ͱ͖Δ #FUUFSίϨΫγϣϯΛ࡞ΕΔ =====超 壁=====
ଞͷίϨΫγϣϯ
ଞͷίϨΫγϣϯʁ $PMMFDUJPOT'SBNFXPSLҎ֎ʹί ϨΫγϣϯଘࡏ͠·͢ɻ Γͳ͍ྖҬͰಠࣗͷίϨΫ γϣϯ͕ΘΕΔ͜ͱ͋Γ·͢ɻ นΛඈͼӽ͑ͨਓ͕ͨͪͬͯ· ͢ɻ
ίϨΫγϣϯ $PMMFDUJPOT'SBNFXPSL+BWB 4&Ͱఏڙ͞Ε·͕͢ɺݴޠతʹ ಛผѻ͍͞Ε͍ͯΔͷ*UFSBCMF ͘Β͍Ͱ͢ɻ
*UFSBCMFͷಛผѻ͍
ͱ͍͑GPSFBDIϧʔϓ ࠷ۙʢ+BWB݄ɺͭ· ΓલʜʜʣGPS&BDIϝιο υ͕ੜ͑ͯ-BNCEBͤΔΑ͏ʹ ͳͬͨΓͯ͠ΔͷͰɺGPSFBDI ϧʔϓͦ͜·ͰརͰͳ͍ Ͱ͢ɻ
ଞͷίϨΫγϣϯ̎छྨ ίϨΫγϣϯͷΠϯλϑΣʔε Ұ෦ΫϥεΛͬͯɺΑΓతʹ ߹ͬͨίϨΫγϣϯ࣮ ΠϯλϑΣʔε͔Βؙ͝ͱ࠶ઃܭ ͞Εͨ$PMMFDUJPOT'SBNFXPSLͱ ޓੑͷͳ͍#FUUFSίϨΫγϣϯ
ίϨΫγϣϯ࣮ +BWBඪ४ϥΠϒϥϦʹࢄݟ͞ΕΔɻ γʔϜϨεʹସͰ͖ɺతʹ߹͍ͬͯͨ ΒྗΛൃش͢Δɻ ΠϯλϑΣʔε͑͞߹ͬͯΕ͍͍ͷͰɺ 3%#ʹଓ͢ΔίϨΫγϣϯͱ͔࡞ ΕΔɻ ͍ʹͳΔ͔ΒΜɻ
#FUUFSίϨΫγϣϯ $PMMFDUJPOT'SBNFXPSLͷܕ֊ૢ࡞ ʹҟΛএ͑Δಠࣗ࿏ઢɻ ੑೳ"1*ͷ͍উख༏Δͷͷɺඪ ४ͱ֎ΕΔ͕Ώ͑ʹଞͷϥΠϒϥϦͱ ͷΓͱΓͷ෦Ͱଟগటष͘ͳΔɻ ͰศརͰ҆શͰޮ͍͍ɻ
ίϨΫγϣϯͷૢ࡞
Γ͍ͨૢ࡞ Ճ আ ஔ நग़ ׂ ूܭ ҙͷॲཧ ม ଞ͋Δ͔
ίϨΫγϣϯૢ࡞ ҰݸͣͭऔΓग़ͯ͠ΕͱΓ͋ ͑ͣͳΜͱ͔ͳΔ ੑೳ͕ڐͤɻ ࣮ྔ͕ڐͤɻ ίʔυ͕ଟ͍ͱ୯७ʹ໘ͩ͠ɺ ίʔυ͕ଟ͍͚ͩόάΓ͍͢ɻ
࣍Ͱ😉
ίϨΫγϣϯΘ͔Δ
Θ͔Δ͍Ζ͍Ζ ΫϥεϝιουΛ҉ه͍ͯ͠ ͯΘ͔Δͱ͍͑·ͤΜɻ
$PMMFDUJPOT'SBNFXPSLͷ ΠϯλϑΣʔεͨͪ 覚 再掲
ΫϥεೖΕΔͱΧΦεʹͳΔ 知 再掲
KBWBVUJM ͚ͩݟͯ List実装 Map実装
Θ͔Δ͍Ζ͍Ζ ֮ͦͦ͑ΔͷແཧΑͶ
ͳͷͰ͝ͱʹ ʮ͜ΕΘ͔Δʯͱݴ͑ͦ͏ͳΛ͠·͢
-JTU ॱংͷ͋ΔίϨΫγϣϯͰ͢ɻ ॱং͕͋ΔͷͰ ೖΕͨॱ͕ҡ࣋͞ΕΔ ฒͼସ͕͑Ͱ͖Δ ฒͼॱΛѻ͑Δඞཁ͕͋Δ
-JTUͷมߋՄೳੑ -JTUPG"SSBZTBT-JTUͰ࡞ͬͨΓɺ $PMMFDUJPOTVONPEJ fi BCMF-JTUΛ௨ͨ͠-JTUมߋͰ ͖ͳ͍ɻ มߋͰ͖ͳ͍-JTUʹมߋૢ࡞Λߦ͏ͱ 6OTVQQPSUFE0QFSBUJPO&YDFQUJPO͕ൃੜ͢Δɻ࣮ߦ࣌ྫ֎ͭ Β͍ɻ -JTUʹݶΒͳ͍͚ΕͲίϨΫγϣϯશൠ๊͕͑Δɺ
ݹ͔͘ΒΑ͘ΒΕͨڍಈɻ มߋෆՄΛલఏʹ͢Δͷ͕ྑ͍ɻ
-JTUͷ࣮બ KBWBVUJM"SSBZ-JTU -JTUPG & ੜ͢Δͱ͖͜ͷ̎ɻ ଞ͋Δ͚Ͳ͋·Γؾʹ͠ͳ͍͍ͯ͘ Ͱ͢ɻ
"SSBZ-JTUͱ-JOLFE-JTU ΄ͱΜͲ"SSBZ-JTUͰ͍͍ -JOLFE-JTUͷํ͕దΆ͍໘Ͱ "SSBZ-JTUͷํ͕ੑೳͰͨΓ͠ ͯ͠·͏͜ͱ͠͠ "SSBZ-JTU͕͍͞Εͨ݁Ռͱ͔ͳ Μͱ͔
.BQ ΩʔͰѻ͏࣌ʹ͍·͢ɻ ΩʔಉੑʢFRVBMTIBTI$PEFʣ͕ద ʹ࣮͞Ε͍ͯΔඞཁ͕͋Γ·͢ɻ FRVBMTIBTI$PEF.BQͷͨΊʹ͋Δͱ ݴͬͯաݴͰͳ͍ɻ աݴͩͬͨɻͰίϨΫγϣϯͷͨΊʹ͋Δͱ ݴͬͯաݴͰͳ͍ؾ͠ͳ͍Ͱͳ͍ɻ
.BQͷࠪ $PMMFDUJPOͰͳ͍ ͭ·Γ*UFSBCMF͕࣮͞Ε͍ͯͳ͍ FOUSZ4FU Ͱ4FU&OUSZʹͯ͠ ͔ΒͿΜ·Θ͢ɻ LFZ4FU WBMVFT ͋Δ͚Ͳɺѹ తʹFOUSZ4FU
ͷग़൪͕ଟ͍ɻ
ฒͼॱ ൺֱ͢ΔͨΊͷ $PNQBSBCMF͕࣮͞ΕͨΫϥε ͕ཁૉͳΒͦͷॱͰฒΒΕΔ ฒͼସ͕͑ࣗ༝ʹͰ͖ΔͱΘ͔ͬͯΔ ײ͋Δ
ฒͼॱ ฒͼସ͑Δ࣌ʹ༩͑Δɻ
$PNQBSBUPS $PNQBSBUPSͷϑΝΫτϦϝιο υʢDPNQBSJOHͱ͔ʣͰ࡞Δɻ $PNQBSBUPSΠϯλϑΣʔεΛ࣮ ͠ͳ͍ɻ
$PNQBSBUPS -JTU -JTUΛιʔτ͢Δͱ͖ʹTPSUϝ ιουʹ$PNQBSBUPSΛ͚͢Ε Ͳɺ-JTU͕มߋՄೳ-JTU͔Ͳ͏͔ Ͱ࣮ߦ࣌ΤϥʔʹͳΔɻ ࠷ۙ͋·Γ͠ͳ͍ɻ 4USFBNͰTPSUͯ͠UP-JTUͪ͠Ό͏ɻ
4FU ॏෳ͠ͳ͍ίϨΫγϣϯͰ͢ɻ ॏෳ͢Δ͔Ͳ͏͔ಉੑʹ ͞Ε·͢ɻ ಉੑ࣌ؒ࣍ୈͰ͋ͱͰɻ جຊతʹॱংͳ͍Ͱ͢ɻ ͋Δ͚ͲΞςʹͨ͠Βμϝɻ
4PSUFE4FU4PSUFE.BQ ͱݴ͑ʮ4FU͍͍͚ͨͲॱং ʔʯͱ͔ݴ͍ग़͢͜ͱଟ͍Ͱ ͢ɻΘ͕··ɻ ͳͷͰηοτͰ4PSUFE4FU͑ ͓͖ͯ·͠ΐ͏ɻ ͍ͭͰʹ4PSUFE.BQɻ
൪֎$PMMFDUJPO $PMMFDUJPO͕ग़ͯ͘Δ͜ͱ໓ଟ ʹͳ͍Ͱ͢ɻ
"SSBZ-JTU͡Όͳ͘-JTUΛ͏
ͦͷઌ ίϨΫγϣϯ͕બΔ
൚༻࣮ͷબࢶ 覚 ( 「⼊⾨」)
ͨͩ͠ ੑೳ໘͔ΒదͳίϨΫγϣϯΛબ ΜͩͭΓͰɺ࠷ۙͷίϯϐϡʔ λʔϦιʔεͩͱޡࠩʹऩ·ͬͨΓ ͠·͢ɻίϨΫγϣϯͰؤுͬͨΓ ͢Δ·͑ʹɺઃܭ4USFBNɺαʔυ ύʔςΟʔͷ#FUUFSίϨΫγϣϯͰ ରॲ͢Δ΄͏͕ྑ͍ײ͡͠·͢ɻ
༩ଠ ⽂句
͑ͳ͍ϝιου͕͋Δ 6OTVQQPSUFE0QFSBUJPO&YDFQUJPO ͕ى͜Δɻ࣮ߦ࣌ྫ֎ͭΒ͍ɻ ͜ΕKBWBMBOHύοέʔδͷͤ͘ʹ $PMMFDUJPOT'SBNFXPSLͷϝϯ όʔͳΜͰ͢ΑͶɻଞͰΘΕ ͯΔ͚Ͳɻ
OVMMͷѻ͍͕·ͪ·ͪ OVMM͕ೖΔίϨΫγϣϯͩͬͨΓɺೖΒͳ ͍ίϨΫγϣϯͩͬͨΓɺ·ͪ·ͪɻ OVMM͕ೖΒͳ͍ίϨΫγϣϯʹOVMMೖΕΔ ͱ࣮ߦ࣌ྫ֎ͭΒ͍ɻ +BWBEPDʹॻ͍ͯΔ͚Ͳಡ·ͳ͍ʢࣗനʣ ςετͰؾ͔ͮ͘Β͍͍͔ͳͬͯʜʜ
ΓΈͯ͌Ϳ JOUͱ͔CPPMFBOͱݴͬͨϓϦϛςΟϒ ʢ·ͩʣίϨΫγϣϯͰѻ͑ͳ͍ɻ ԼखʹΔͱϘΫγϯάʗΞϯϘΫγϯ ά͕සൃ͢Δɻ ͚ͲϚγϯύϫʔ্͕ͬͯผʹʹͳ Βͳ͍ͷඍົʹ໘ͳͱ͜Ζɻ
IBTI$PEFFRVBMT ίϨΫγϣϯͰཁૉಉ࢜Λൺֱ ͢Δ͜ͱଟ͍ɻ ͳͷͰ͜ΕΒΛѻ͑ͳ͍ͱʮίϨ Ϋγϣϯ͑ΔʯʹͳΒͳ͍ɻ ͜ͷ࣍ʹ$PNQBSBCMF͕ग़ͯ͘Δɻ
ಓIBTI$PEF IBTI$PEF͕Ұக͍ͯͯ͠Π ίʔϧͰͳ͍ʢશવҧ͏ͷͰ ඃ͍͍ͬͯʣ IBTI$PEF͕ҧͬͨΒඞͣҧ͏ʹ ͠ͳ͖Ό͍͚ͳ͍
͍ͨͩ͠IBTI$PEFͷ࣮ 役 ⽴
IBTI$PEFFRVBMTͷ࣮ ͖ͯͱ͏ʹ͠Β͍ͯͩ͘͞ɻ *%&ʹ࡞ΒͤΔͰ͍͍͠ɺ SFDPSEʹཔΔͰ͍͍͠ɻ
ίϨΫγϣϯͱ γϦΞϥΠζ
γϦΞϥΠζ ࣮Ͱ΄ͱΜͲҙࣝ͞Εͳ͍ Ͱ͋Ζ͏4FSJBMJ[BCMFͷɻ Βͳ͍͍ͯ͘Μ͚ͩͲɺΒ ͳ͍ͳΒΘͳ͍͜ͱɻ͏ͳ Β͓͔ͬͯͳ͖Ό͍͚ͳ͍ɻ
4FSJBMJ[BCMFੲ ҰੲલηογϣϯϨϓϦέʔγϣϯͱ͔Ͱඞཁ ͩͬͨΓͰඞ͚ͣͭ·͠ΐ͏ͱ͔ͳͬͯͨΜ͚ͩ ͲɺࠓΦϒδΣΫτΛγϦΞϥΠζ͢Δํ๏͕ ͜ΕʹݶΒͳ͘ͳͬͯΔͷͰग़൪ݮͬͯΔɻ ηογϣϯϨϓϦέʔγϣϯͰSFEJTͱ͔ͷ֎෦ ετϨʔδ͏ͳΒ͚ͦͬͪͷγϦΞϥΠζΛ ͢Ε͍͍ͷͰɻ ͨͱ͑+40/ʹॻ͖ग़͢ͳΒ4FSJBMJ[BCMFཁΒͳ͍ɻ
4FSJBMJ[BCMFੲ TFSJBM7FSTJPO6*%ͱ͍͏ͷ ʮܯࠂͰΔ͔Βͬͱ͜͏ʯ͘Β͍Ͱ࡞ ΒΕͯͨΓ͢Δɻ ͦΕͳΒ࡞Βͳ͍ํ͕ϚγͳΜ͚ͩͲͳ͊ʜʜ ͱԣͰݟͯΔɻ࣮ͳ͍ͷͰ͠͠εϧʔͪ͠Ό͏ɻ ͜ͷΛ࢝ΊΔͱऴΘΒͳ͍ͷͰলུɻ
ίϨΫγϣϯͱγϦΞϥΠζ -JTU4FSJBMJ[BCMFͰͳ͍ $PMMFDUJPOT'SBNFXPSLͷΠϯλ ϑΣʔεશ෦4FSJBMJ[BCMFͰͳ͍ "SSBZ-JTU4FSJBMJ[BCMFͰ͋Δ
ͨͱ͑͜͏͍͏࣮ NG 。 保証 。
)BTI4FUͷத
)BTI4FUͷத ॏෳΛͳ͍ͨ͘͠ͱ͖ʹΑ͘Θ ΕΔ)BTI4FUɺ)BTI.BQͱࣅ ͍ͯΔ͚ΕͲɺ)BTI.BQ͕Ωʔ ͱͷϖΞͰ͋Δͷʹରͯ͠ )BTI4FUཁૉ͚ͩΛѻ͏ͷͰγ ϯϓϧͩͱࢥ͏͔͠Εͳ͍ɻ
KBWBVUJM)BTI4FU
KBWBVUJM)BTI4FU 👈 中⾝HashMap
ੲͷࢠͨͪ
ग़͖ͯͨΒʮ͋ɺੲͷʜʜʯͱ Թ͔͍Ͱݟ͍ͯ͋͛ͯͩ͘͞ 「昔」 ⾔ 側 24年前問題
ίϨΫγϣϯͷ ެࣜυΩϡϝϯτ
ެࣜυΩϡϝϯτ 存在知 辿 着 問題
ͨͲΓ͖͔ͭͨ
None
όʔδϣϯ ̓ 分布差 込
出典 感覚
όʔδϣϯ ̓ 実際⾒ 現場
割合
👇
👉
👈
👇
👈
None
👈
None
読 物 ⾯⽩