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

java.lang.Object

  java.util.AbstractMap <K, V>

      java.util.HashMap<K, V>

 

* 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 내의 지정된 위치에 있는 요소를 돌려줍니다.

l  set (int index, E  element)

: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

다른 카테고리의 글 목록

자바 기본 공부/기초 이론 카테고리의 포스트를 톺아봅니다