2008 – 07 -17(목)
< 열심히 하자… 여기있는 동안만이라도….>
<지금까지 사용했던 주요 클래스>
1) Object ( 가장 상위 class)
- equals , hashcode toString …..
2) String ( 불변 class )
- immutable : 변하지 않는.
- 한번 생성된 객체의 내용을 연산이나 메소드의 사용에 의해서
변화시킬 수 없다.( wrapper class 포함 )
- 문자열 비교시에는 반드시 equals method를 사용해야한다.
3) StringBuffer ( 가변 클래스 mutable)
- 한번 생성된 객체의 내용이 연산이나 메소드를 통해서 변할 수 있다.
- (ex) append , insert )
4) Math
상수와 static 메소드만으로 구성되어있는 class
수학적인 계산을 돕는 유틸리티 클래스.
5) Date, Calendar , GregorianClandar
- 날짜를 구하거나 , 더하거나 , 빼거나 하는 등의 일을
할때에 필요한 클래스.
6) SimpleDateFormat
- 날짜타입을 원하는 대로 바꿀 때 사용
(ex SimpleDateFormat(“yyyy년 MM월 dd일 E요일”);)
7) DecimalFormat ( 한번 찾아볼껏..**);
- 숫자를 원하는 형태로 바꿀 수 있게 도와주는 클래스
Array : 배열가지고 모자른 내용을 보완하기 위해..
모두다 Interface입니다.
Collections Framework
1) hierarchy ( 계층구조도 ): interface
l Collection : 일련의 집합
Set : ,중복되는 것을 허용하지 않는다.
List : 번호를 붙여놓는 놈.
Queue : Stack(FILO , LIFO)하고 반대되는 놈 ( FIFO )
스케쥴 개념.
Map : 지도, 원래 목적의 장소로 찾게해주는 놈. ( 주소값을 저장 )
SortedMap : 주소값을 정렬해주는 .
1) Collection : 컬렉션 계층구조의 Root( 나열된 데이터들의 집합)
2) Set : 중복된 요소(elements)를 허용하지 않는다.
Ex) 트럼프카드….
3) List : 순서가 있는 컬렉션(sequence 라고도한다.)
4) Queue : 우선순위를 가지는 여러 개의 요소를 가지고있는 컬렉션.
: FIFO (EX 스케쥴러 )
5) Map : key와 value로 이루어진 것, 중복된 key불가.
정렬이 되는 계열
6) SortedSet : 오름차순(ascending)의 순서로 정렬된 요소를 가지는 것.
7) SortedMap : key값을 오름차순으로 가지는 것.
Ex) 사전, 전화번호부.
l Map이 커지면 커질수록 SortedMap을 사용하는게 효율적.
l 오라클에서 index개념으로 보면 될 것.
기타 계열
8) Enumeration : 각각의 요소를 나열된 형태로 가지고있다.
9) Iterator : Enumeration 기능 + 삭제가 가능하다.
Implementations (구현체들 Class)
1> Set : 중복된 값을 허용하지 않는다.
1) HashSet : TreeSet보다 빠르다.
2) TreeSet : SortedSet 에서 구현, 정렬가능.
2> List : 순서가 있는 컬렉션(sequence 라고도한다.)
1) ArrayList : (진짜많이사용) 배열하고 가장 흡사한 형태
: 배열의 보완점을 채워준 중요한 녀석.
: LinkedList보다 빠르다.
2) LinkedList : 부분적으로 요소를 추가하거나 바로 추가한
놈을 추적하거나, 삭제하거나 하는 일을 많이 할때쓰면
효율적이다.( List계열이지만 Queue도 상속)
3> Map
1) HashMap : 빠르다. null키값과 null value값을 허용한다.
2) TreeMap : SortedMap에서 구현, 정렬이 가능.(key값)
3) LinkedHashMap : 집어넣는 순서대로 정렬, 속도는 거의 HashMap만큼.
Java . util . *
Interface Collection < E > : 제네릭스(?)
: 컬렉션 안에 있는 녀석의 타입을 의미.
java.util
l ArrayList<E>
java.lang.Object
java.util.AbstractCollection <E>
java.util.AbstractList <E>
java.util.ArrayList<E>
.
아무거나 다 집어넣을 수 있다.
l 자주 사용하는 Method()
<Boolean>
add
(
E o
)
:리스트의 마지막으로, 지정된 요소를 추가합니다
<Void>
add
(
int index, E element
)
: 리스트의 지정된 위치에,지정된 요소를 삽입합니다.
<E>
remove
(
int index
)
: 리스트내의 지정된 위치로부터 요소를 삭제합니다.
<Boolean>
remove
(
Object o
)
:지정된 요소의 인스턴스가 이 리스트에 있으면, 그 인스턴스를 리스트로부터 1 개
삭제합니다 (임의의 오퍼레이션).
<Int>
size
()
: 리스트내에 있는 요소의 수를 돌려줍니다.
l ArrayList constructor
ArrayList(int 가용량); * Default 가용량 10 = 가장 권장.
: 지정된 가용량 값만큼 가용량 생성(꼭사용하지 않아도 괜찮음)
: 초과 생성시 가용량 값만큼 증가.
u ArrayList 의 add(int index, E element)
-중간에 건너뛸수는 없다.( IndexOutOfBoundException )
-즉, 하나씩 하나씩 차곡차곡 채워져나감.
-만약, 이미 채워져있는 값의 index에 넣으면 뒤에있는 것이 밀림.
-삭제하는 것이 아니라 밀어내는 효과 발생.
u ArrayList 의 remove(int index);
-중간에 빈공간이 생기지 않는다.
-So, 중간에서 지워지면 앞으로 당겨짐.
l HashMap
* HashMap은 순서관계없이 데이터저장.
key값과 values가 들어있다.(Oracle과 비슷해서 서로 연동할 때 사용.)
집어 넣을 때에도 key값과 value값을 넣어줘야하고,
출력 할때에도 key값을 넣어줘야한다.
1.
put
(K key, V value)
: 지정된 값과 지정된 키를 이 맵에 관련짓습니다.
* key값 하나에 하나의 value만 들어갈수있는거 같음.(내생각);
2.
get
(Object key)
: 이 식별 정보 해시 맵으로 지정된 키에 맵 되고 있는 값을 돌려줍니다.
HashMap method
입력시 : HashMap.put(key 값, value값);
출력시 : HashMap.get(key 값) => value값 불러옴.
u HashMap 특징
: 중복값 허용되지 않는다.
똑같은 key값을 재정의시 기존에 정의됬던 value는 교체된다.(덮어씌우기)
ArrayList 와 HashMap 비슷한 놈들 : Vector HashTable
정리 :
Synchronized ( 동기화 ) 계열 ( 멀티쓰레드에 안전 )
:
1) Vector ( List 계열 )
2) Hashtable (Map 계열)
: null key값 , null value값 허용 안함.
1) Vector 실습 :
l java.util Vector<E>
java.lang.Object
java.util.AbstractCollection <E>
java.util.AbstractList <E>
java.util.Vector<E>
l ArrayList 비슷함.
l addElement : add와 똑같음.
l capacity : Vector 의 새로운 용량을 돌려줍니다.
l elements
()
: Vector 의 요소의 열거를 돌려줍니다.
l get
(int index)
: Vector 내의 지정된 위치에 있는 요소를 돌려줍니다.
:Vector 내의 지정된 위치에 있는 요소를, 지정된 요소로 옮겨놓습니다.
java.util
클래스 Hashtable<K, V>
java.lang.Object
java.util.Dictionary <K, V>
java.util.Hashtable<K, V>
l HashMap하고 똑같다. (Hashtable)
l 단지 non null
java.util
클래스 Collections
java.lang.Object
java.util.Collections
* shuffle
(List <? > list)
: 디폴트의 random number generation의 원을 사용해, 지정된 리스트의 순서를
무작위로 바꿔 넣습니다.
* shuffle
(List <? > list, Random rnd)
: 디폴트의 random number generation의 원을 사용해, 지정된 리스트의 순서를
무작위로 바꿔 넣습니다.
*sort
(List <T> list)
: 요소의 「자연 순서 붙이고」에 따라, 지정된 리스트를 승순에 소트 합니다.
<내일>
*sort
(List <T> list, Comparator <? super T> c)
: 지정된 콤퍼레이터가 가리키는 순서에 따라, 지정된 리스트를 소트 합니다.
<좀 더 멀리보자….>
<실습정리>
l ArrayList
1) 객체 생성 : ArrayList list = new ArrayList();
A. ArrayList추가 : list.add(“추가01”);
list.add(new Integer(123))
B. ArrayList get(int index) : index입력하면 해당 index의 value출력.
C. ArrayList size() : list.size(); Object의 Length라 생각하면됨.
D. ArrayList 출력01 :
Default For문 사용
for(int i=0; i<list.size(); i++){
list.get(i);
}
ArrayList 확장 for문
For(Object o : list){
System.out.println(o);
}
l HashMap
: Key값 과 value 값을 입력한다.
: null key와 null value가 들어감.
HashMap 객체 생성 : HashMap hm = new HashMap();
HashMap key,value넣기 : HashMap.put(Key , values)
hm.put(“바보”,”온달”);
hm key : 바보 , hm value : “온달”
HashMap 출력 : HashMap.get( Key );
System.out.println(hm.get(“바보”));
Result : 온달;
l Vector
: List계열로 ArrayList와 비슷하다.
: ArrayList에 비해 많이 느려진다.
: 사용이유 = (내일)멀티쓰레드에 안전하므로...
Vector 객체생성 : Vector vec = new Vector();
add : add(int index, values ) or add(values) (=addElement(values))
get : get(int index) or ElementAt(int index)
/* 이거 잘모르겠음.
Iterator iter = v.iterator();
while(iter.hasNext()){
Object o = iter.next();
if(o.equals("이필로")) iter.remove();
pln(o);
}
*/
내일은 thread 나간다.
'자바 기본 공부 > 기초 이론' 카테고리의 다른 글
자바 JDBC 기초 (0) | 2009.06.23 |
---|---|
Thread에 대해서 집중~~~ (0) | 2009.06.23 |
자바의 Date(날짜)- calendar (0) | 2009.06.23 |
자바 Package Control (0) | 2009.06.23 |
내부클래스 세부. (0) | 2009.06.23 |