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
collections in JDK (beta)
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Kengo TODA
August 20, 2012
Technology
2
120
collections in JDK (beta)
To explain the basic collection in JDK
Kengo TODA
August 20, 2012
Tweet
Share
More Decks by Kengo TODA
See All by Kengo TODA
生成AI 業務応用向けガイドライン 斜め読み / Overview of Generative AI Business Application Guidelines
eller86
0
160
KotlinユーザのためのJSpecify入門 / JSpecify 101 for Kotlin Devs
eller86
0
1.9k
JavaとGroovyで書かれたGradleプラグインをKotlinで書き直した話 / Converted a Gradle plugin from Groovy&Java to Kotlin
eller86
0
1.7k
ヒューマンスキル / The Humanskills
eller86
0
730
医療機関向けシステムの信頼性 / Reliability of systems for medical institutions
eller86
0
490
Server-side Kotlinを使うスタートアップでどんなDetektルールが育ったか / Detekt rules made in start-up working with Server-side Kotlin
eller86
0
1.6k
Java開発者向けのKotlin Gradleビルドスクリプト入門 / Gradle Build Script in Kotlin 101
eller86
1
2.1k
Goodbye JSR305, Hello JSpecify!
eller86
2
5.4k
Java8〜16におけるバイトコード生成の変化 / Changes of Bytecode Generation from Java 8 to 16
eller86
4
4.6k
Other Decks in Technology
See All in Technology
20260204_Midosuji_Tech
takuyay0ne
1
160
Tebiki Engineering Team Deck
tebiki
0
24k
Context Engineeringが企業で不可欠になる理由
hirosatogamo
PRO
3
590
SREのプラクティスを用いた3領域同時 マネジメントへの挑戦 〜SRE・情シス・セキュリティを統合した チーム運営術〜
coconala_engineer
2
660
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
390
AI駆動PjMの理想像 と現在地 -実践例を添えて-
masahiro_okamura
1
120
AI駆動開発を事業のコアに置く
tasukuonizawa
1
200
What happened to RubyGems and what can we learn?
mikemcquaid
0
300
Agile Leadership Summit Keynote 2026
m_seki
1
620
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
450
AIと新時代を切り拓く。これからのSREとメルカリIBISの挑戦
0gm
0
1.2k
インフラエンジニア必見!Kubernetesを用いたクラウドネイティブ設計ポイント大全
daitak
1
360
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
120
Building the Perfect Custom Keyboard
takai
2
680
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
76
Deep Space Network (abreviated)
tonyrice
0
49
KATA
mclloyd
PRO
34
15k
The agentic SEO stack - context over prompts
schlessera
0
640
Making Projects Easy
brettharned
120
6.6k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
140
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
The Curious Case for Waylosing
cassininazir
0
240
Chasing Engaging Ingredients in Design
codingconduct
0
110
Transcript
collections in JDK - basic data structures you should know
- 2012/Aug/29 Kengo TODA
Basic collection List<T> Set<T> Map<K, T>
ArrayList<T> It just wraps an array Good to #get(int): O(1)
Bad to #remove(int), #contains(T) : O(n)
LinkedList<T> Simple bidirectional list It costs more Java heap than
ArrayList Good to #remove(0), #add(0, T): O(1) Bad to #get(int), #contains(T) : O(n)
How to choose? ArrayList: Stack When we needs random access
LinkedList: Queue (Deque) When we call #remove(int) frequently
HashMap<K, V> It use hash table to manage key We
have to implement #hashCode() correctly It does not implement SortedMap interface
TreeMap<K, V> It use red-black tree to manage key We
have to implement Comparable or Comparator correctly It implements SortedMap
LinkedHashMap<K, V> A subclass of HashMap It has bidirectional list
to memory insertion- order (or access-order) It does not implement SortedMap interface
How to choose? HashMap Standard use TreeMap When we have
to use ordering LinkedHashMap When we have to memory insertion-order
Set ≒ Map HashSet TreeSet LinkedHashSet
Legacy implementations Vector Stack Hashtable Properties @Deprecated
Additional collection Google guava contains useful collections Table<C, R, V>
Multiset<T> Multimap<K, V>