SlideShare ist ein Scribd-Unternehmen logo
1 von 9
Downloaden Sie, um offline zu lesen
박혜웅
java.util.Collection
java.util.Mapjava.util.Set java.util.List
java.util.SortedSet java.util.SortedMap
java.util.Iterator
java.util.ListIterator
java.util.Enumeration
인터페이스
주요 클래스
클래스
2
java.util.Collection
java.util.Mapjava.util.Set java.util.List
HashSet
TreeSet
EnumSet
LinkedHashSet
ArrayList
LinkedList
Vector
Stack
HashMap
Hashtable
TreeMap
EnumMap
LinkedHashMap
WeakHashMap
인터페이스
주요 클래스
클래스
3
인터페이스 중복 순서 구조 클래스 동기화 속도 정렬
NULL
허용
Set X X value
HashSet X 빠름 X
TreeSet X 느림 O
EnumSet
LiknedHashSet
List O O
index,
value
ArrayList X 매우빠름 X O
LinkedList X 느림
Vector O 느림
Stack O 느림
Map X X
key,
value
HashMap X 매우빠름 X O
Hashtable O 느림 X X
TreeMap X 매우느림 O
EnumMap
LinkedHashMap 매우빠름
WeakHashMap
4
자료구조 클래스 메소드
공통 size();
list
ArrayList
LinkedList
Vector
set(v);
get(i);
stack LinkedList
addLast(v);
getLast(); removeLast();
queue LinkedList
offer(v);
pool(); peek();
hash table
Hashtable
HashMap
put(k,v);
get(k);
set HashSet
add(v);
remove(v);
5
6
설명 예제
선언 임의의 타입 E를 사용할 것을 선언.
class Generic<E, F>{
void <E> add(E e){} }
사용 임의의 타입을 String으로 사용
Generic<String, Integer> list = new Generic<String>();
list.add(new String(""));
선언
Number나 그 하위 클래스 타입 E
를 사용할 것을 선언
class Generic2<E extends Number & Comparable>{
void <E> add(E e){} }
사용
Number나 그 하위 클래스 타입이
아닌 경우는 사용 불가.
Generic2<Number> list = new Generic<Number>();
Generic2<Long> list = new Generic<Long>();
Generic2<String> list = new Generic<String>();
 Generic Programming
 매개변수의 데이터 타입을 지정
 Generic 변수명 명명규칙
 E=Element, K=Key, V=Value, O:Object, T=Type
 타입의 범위 지정
 <E extends Class, ... & extends Interface, ....>
 특정 클래스나 인터페이스 하위의 타입만 사용
 Generic Wildcard
 제너릭 타입에 대한 범위 지정
7
예제 설명
Vector<Integer> x= new Vector<String> (); 다른 타입이므로 타입변환 불가
Vector<Object> obj = new Vector<String>(); 부모클래스가 아니므로 타입변환불가
Vector<?> wild= new Vector<String>(); <?>는 <String> 의 부모타입
Vector<? extends Number> wild= new Vector<Long>(); <Long>은 <Number>의 하위 타입
Vector<? extends Number> wild= new Vector<Object>(); <Object>은 <Number>의 상위 타입
Vector<? super Number> wild= new Vector<Object>(); <Object>은 <Number>의 상위 타입
Vector<? super Number> wild= new Vector<Long>(); <Long>은 <Number>의 하위 타입
Vector raw = new Vector<String>; 암묵적 허용(?)
표시방법 설명
? 모든 타입
? extends 클래스
? extends 인터페이스
특정 클래스(인터페이스) 하위의 모든 타입 (특정 클래스 포함)
? super 클래스
? super 인터페이스
특정 클래스(인터페이스) 상위의 모든 타입 (특정 클래스 포함)
Generic<Object>
Generic<String>
Generic<?>
Generic<String>
Generic<? extends String>
Generic<String>
Generic
Generic<String>
Object
String
Generic<String>
Generic<? super String >
 Generic Wildcard
 제너릭 타입의 상속 관계
8
 확장 for문 사용 예
9
ArrayList<Integer> list = new ArrayList<Integer>();
for(Integer i : list)
{
i.parseInt();
}

Weitere ähnliche Inhalte

Was ist angesagt?

파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130Yong Joon Moon
 
05_STL컨테이너정리
05_STL컨테이너정리05_STL컨테이너정리
05_STL컨테이너정리noerror
 
Programming java day2
Programming java day2Programming java day2
Programming java day2Jaehoonyam
 
엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612Yong Joon Moon
 
엘라스틱서치 이해하기 20160613
엘라스틱서치 이해하기 20160613엘라스틱서치 이해하기 20160613
엘라스틱서치 이해하기 20160613Yong Joon Moon
 
파이썬 xml 이해하기
파이썬 xml 이해하기파이썬 xml 이해하기
파이썬 xml 이해하기Yong Joon Moon
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java유리 하
 
파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311Yong Joon Moon
 
파이썬 Special method 이해하기
파이썬 Special method 이해하기파이썬 Special method 이해하기
파이썬 Special method 이해하기Yong Joon Moon
 
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼Sanghoon Yoon
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈Yong Joon Moon
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Park Jonggun
 
파이썬 Xml 이해하기
파이썬 Xml 이해하기파이썬 Xml 이해하기
파이썬 Xml 이해하기Yong Joon Moon
 
Python 이해하기 20160815
Python 이해하기 20160815Python 이해하기 20160815
Python 이해하기 20160815Yong Joon Moon
 
파이썬 객체 클래스 이해하기
파이썬  객체 클래스 이해하기파이썬  객체 클래스 이해하기
파이썬 객체 클래스 이해하기Yong Joon Moon
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기Yong Joon Moon
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기Yong Joon Moon
 
파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301Yong Joon Moon
 
Scala type class pattern
Scala type class patternScala type class pattern
Scala type class patternYong Joon Moon
 

Was ist angesagt? (20)

파이썬정리 20160130
파이썬정리 20160130파이썬정리 20160130
파이썬정리 20160130
 
05_STL컨테이너정리
05_STL컨테이너정리05_STL컨테이너정리
05_STL컨테이너정리
 
Programming java day2
Programming java day2Programming java day2
Programming java day2
 
엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612엘라스틱서치 이해하기 20160612
엘라스틱서치 이해하기 20160612
 
엘라스틱서치 이해하기 20160613
엘라스틱서치 이해하기 20160613엘라스틱서치 이해하기 20160613
엘라스틱서치 이해하기 20160613
 
파이썬 xml 이해하기
파이썬 xml 이해하기파이썬 xml 이해하기
파이썬 xml 이해하기
 
[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java[HaU] 신입 기술 면접 준비 java
[HaU] 신입 기술 면접 준비 java
 
파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311파이썬+데이터+구조+이해하기 20160311
파이썬+데이터+구조+이해하기 20160311
 
파이썬 Special method 이해하기
파이썬 Special method 이해하기파이썬 Special method 이해하기
파이썬 Special method 이해하기
 
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
[세미나] 20160819 Java 프로그래머를 위한 Scala 튜토리얼
 
파이썬 크롤링 모듈
파이썬 크롤링 모듈파이썬 크롤링 모듈
파이썬 크롤링 모듈
 
Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초Start IoT with JavaScript - 1.기초
Start IoT with JavaScript - 1.기초
 
파이썬 Xml 이해하기
파이썬 Xml 이해하기파이썬 Xml 이해하기
파이썬 Xml 이해하기
 
Python 이해하기 20160815
Python 이해하기 20160815Python 이해하기 20160815
Python 이해하기 20160815
 
파이썬 객체 클래스 이해하기
파이썬  객체 클래스 이해하기파이썬  객체 클래스 이해하기
파이썬 객체 클래스 이해하기
 
파이썬 심화
파이썬 심화파이썬 심화
파이썬 심화
 
파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기파이썬 Collections 모듈 이해하기
파이썬 Collections 모듈 이해하기
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기
 
파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301파이썬+Json+이해하기 20160301
파이썬+Json+이해하기 20160301
 
Scala type class pattern
Scala type class patternScala type class pattern
Scala type class pattern
 

Andere mochten auch

06주차 정규화와 select
06주차 정규화와 select06주차 정규화와 select
06주차 정규화와 selectYoonwhan Lee
 
1. introduction to java8
1. introduction to java81. introduction to java8
1. introduction to java8흥래 김
 
ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정Javajigi Jaesung
 
자바 8 스트림 API
자바 8 스트림 API자바 8 스트림 API
자바 8 스트림 APINAVER Corp
 
씹고 뜯고 맛보고 즐기는 스트림 API
씹고 뜯고 맛보고 즐기는 스트림 API씹고 뜯고 맛보고 즐기는 스트림 API
씹고 뜯고 맛보고 즐기는 스트림 APIArawn Park
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개beom kyun choi
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개beom kyun choi
 

Andere mochten auch (8)

06주차 정규화와 select
06주차 정규화와 select06주차 정규화와 select
06주차 정규화와 select
 
1. introduction to java8
1. introduction to java81. introduction to java8
1. introduction to java8
 
3. stream api
3. stream api3. stream api
3. stream api
 
ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정ORM을 활용할 경우의 설계, 개발 과정
ORM을 활용할 경우의 설계, 개발 과정
 
자바 8 스트림 API
자바 8 스트림 API자바 8 스트림 API
자바 8 스트림 API
 
씹고 뜯고 맛보고 즐기는 스트림 API
씹고 뜯고 맛보고 즐기는 스트림 API씹고 뜯고 맛보고 즐기는 스트림 API
씹고 뜯고 맛보고 즐기는 스트림 API
 
자바8 람다식 소개
자바8 람다식 소개자바8 람다식 소개
자바8 람다식 소개
 
자바8 스트림 API 소개
자바8 스트림 API 소개자바8 스트림 API 소개
자바8 스트림 API 소개
 

Ähnlich wie Java 자료구조 비교 (Java1.6 기준)

자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라Jong Gook Bae
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기Yong Joon Moon
 
Java advancd ed10
Java advancd ed10Java advancd ed10
Java advancd ed10hungrok
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, ScalabilityDongwook Lee
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리ETRIBE_STG
 
0327.web&ruby&rails
0327.web&ruby&rails0327.web&ruby&rails
0327.web&ruby&rails민정 김
 
자바와 사용하기2
자바와 사용하기2자바와 사용하기2
자바와 사용하기2destinycs
 
2.supervised learning
2.supervised learning2.supervised learning
2.supervised learningHaesun Park
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R BasicsYoonwhan Lee
 
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 Yong Joon Moon
 
Linear algebra for quantum computing
Linear algebra for quantum computingLinear algebra for quantum computing
Linear algebra for quantum computingssuserd0f07b
 
Smalltalk at Altlang 2008
Smalltalk at Altlang 2008Smalltalk at Altlang 2008
Smalltalk at Altlang 2008daliot
 

Ähnlich wie Java 자료구조 비교 (Java1.6 기준) (20)

자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라자바프로그래머를 위한 스칼라
자바프로그래머를 위한 스칼라
 
Javascript
JavascriptJavascript
Javascript
 
Scala
ScalaScala
Scala
 
파이썬 문자열 이해하기
파이썬 문자열 이해하기파이썬 문자열 이해하기
파이썬 문자열 이해하기
 
Java advancd ed10
Java advancd ed10Java advancd ed10
Java advancd ed10
 
강의자료3
강의자료3강의자료3
강의자료3
 
선형 대수학
선형 대수학선형 대수학
선형 대수학
 
Scalability
ScalabilityScalability
Scalability
 
Scala, Scalability
Scala, ScalabilityScala, Scalability
Scala, Scalability
 
Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리Javascript 완벽 가이드 정리
Javascript 완벽 가이드 정리
 
0327.web&ruby&rails
0327.web&ruby&rails0327.web&ruby&rails
0327.web&ruby&rails
 
자바와 사용하기2
자바와 사용하기2자바와 사용하기2
자바와 사용하기2
 
JDK 변천사
JDK 변천사JDK 변천사
JDK 변천사
 
Java(4/4)
Java(4/4)Java(4/4)
Java(4/4)
 
2.supervised learning
2.supervised learning2.supervised learning
2.supervised learning
 
3주차 스터디
3주차 스터디3주차 스터디
3주차 스터디
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
 
텐서플로우 기초 이해하기
텐서플로우 기초 이해하기 텐서플로우 기초 이해하기
텐서플로우 기초 이해하기
 
Linear algebra for quantum computing
Linear algebra for quantum computingLinear algebra for quantum computing
Linear algebra for quantum computing
 
Smalltalk at Altlang 2008
Smalltalk at Altlang 2008Smalltalk at Altlang 2008
Smalltalk at Altlang 2008
 

Mehr von 혜웅 박

구글을 지탱하는 기술 요약 - Google 검색
구글을 지탱하는 기술 요약 - Google 검색구글을 지탱하는 기술 요약 - Google 검색
구글을 지탱하는 기술 요약 - Google 검색혜웅 박
 
구글을 지탱하는 기술 요약 - Bigtable
구글을 지탱하는 기술 요약 - Bigtable구글을 지탱하는 기술 요약 - Bigtable
구글을 지탱하는 기술 요약 - Bigtable혜웅 박
 
구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS혜웅 박
 
C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)
C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)
C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)혜웅 박
 
추천시스템과 협업필터링
추천시스템과 협업필터링추천시스템과 협업필터링
추천시스템과 협업필터링혜웅 박
 
국문학 용어 정리
국문학 용어 정리국문학 용어 정리
국문학 용어 정리혜웅 박
 
한국어의 문장 성분
한국어의 문장 성분한국어의 문장 성분
한국어의 문장 성분혜웅 박
 
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표혜웅 박
 

Mehr von 혜웅 박 (9)

비트벡터
비트벡터비트벡터
비트벡터
 
구글을 지탱하는 기술 요약 - Google 검색
구글을 지탱하는 기술 요약 - Google 검색구글을 지탱하는 기술 요약 - Google 검색
구글을 지탱하는 기술 요약 - Google 검색
 
구글을 지탱하는 기술 요약 - Bigtable
구글을 지탱하는 기술 요약 - Bigtable구글을 지탱하는 기술 요약 - Bigtable
구글을 지탱하는 기술 요약 - Bigtable
 
구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS구글을 지탱하는 기술 요약 - GFS
구글을 지탱하는 기술 요약 - GFS
 
C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)
C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)
C프로그래머를 위한 Java 기초 입문 (Java1.5 기준)
 
추천시스템과 협업필터링
추천시스템과 협업필터링추천시스템과 협업필터링
추천시스템과 협업필터링
 
국문학 용어 정리
국문학 용어 정리국문학 용어 정리
국문학 용어 정리
 
한국어의 문장 성분
한국어의 문장 성분한국어의 문장 성분
한국어의 문장 성분
 
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
컴퓨터 자료구조 중에서 Tree 에 속한 자료구조 분류표
 

Java 자료구조 비교 (Java1.6 기준)