'Collection'에 해당되는 글 1건

  1. 2009.07.03 스터디 07/11-3(Collection) by 대절님
//자료구조
  데이터를 효율적으로 저장하고 표현하기위한 논리적 구조
/선형구조 :
  - 리스트 : 자료들 사이에 순서가 있다.
  - 스택 : 한쪽끝에서만 삽입, 삭제 발생(LIPO)
  - 큐 : 한쪽에서 삽입, 다른쪽에서 삭제 발생(FIFO)
/비선형구조:
  - 트리
  - 그래프
//Collection API
정의 : 자료구조를 자바 클래스로 객체화한것
특징 : 객체만 저장(기본자료형을 wrapper클래스로 만들면 저장가능),
         다른 타입도 저장가능(배열은 같은타입)
계층구조 :

<>  == 인터페이스
Collection계열 : value만 저장 / Map계열 : Key.Value저장

Set계열 : 순서없고, 중복허용X
List계열 : 순서있고, 중복허용

Stack : 한쪽으로만 저장,삭제(LIFO)  - push(), pop()

<Collection> -- <Set>----<SortedSet>                                        
                                   --HashSet
                   -- <Queue>
                   -- <List>----LinkedList
                                   --ArrayList
                                   --Vector----Stack

<Map> ------- HashMap
           ------- Hashtable

Set예제 : 
psvm{
 Set set = new HashSet();
 set.add("대철");
 set.add(new Integer(123));
 set.add("123");
 for(int i =0 ; i <set.size(); i++){
     Object[] o = set.toArray();
     sout(o[i]);                  
 }}
 결과 : 대철 / 123 / 123

Stack예제 : (로컬변수 저장할때, 예외처리에서 메서드 호출메커니즘)
psvm{
 Stack s = new Stack();
 s.push("대철");
 s.push("님");
 while(!s.isEmpty()){ sout(s.pop()) }
}
//Map
 Key와 Value 쌍으로 저장, Key중복X, Key를 이용하여 Value를 참조
-Hashtable : Key와 value값이 null을 허용하지 않는다. 스레드 동기화를 지원한다.
-HashMap : Key와 value값이 null을 허용한다. 스레드 동기화를 지원하지 않는다.
put() 으로 넣고 get() 으로 가져옮.

//Iterator & Enumeration
Collection에 저장된 데이터를 일관된 방법으로 얻어옮.(종류가 달라도 하나의 방법으로 가져옮)

/Iterator :
 hasNext() : 데이터의 유무
 next() : 얻어오기
 remove() : 삭제
/Enumeration : 
 hasMoreElements() : 데이터의 유무
 nextElement() : 얻어오기
예제 : 
 List list = new ArrayList();
 list.add("a");
 list.add("b");
Iterator elements = list.iterator();
while(elements.hasNext()){    sout(elements.next()   }}

//Properties
 - Hashtable의 하위클래스, 속성저장할때 사용(환경변수 설정할때)
 - 실행시 환경변수 추가 가능 ( java -Dkey=value 클래스명)
예제 :
psvm{
 Properties p = new Properties();
 p.setProperty("name","대철");
 p.setProperty("age","27");
 String name = p.getProperty("name");
 Enumeration e = p.propertyNames();   //Properties가 가지고있는 Key값을 모두 가져옴.
 while(e.hasMoreElements()){
   String key = (String)e.nextElements();
   sout(key + p.getProperty(key));
 }}

/시스템 환경변수 설정
 psvm{
   Properties prop = System.getProperties();         //OS환경변수값을 가지고옮
   Enumeration enu = prop.propertyNames();
   while(enu.hasMoreElements()){
      String propName = (String)enu.nextElement();
      String property = prop.getProperty(propName);
      sout( propName + property);
   }}
실행시에 java -a=b 클래스명 으로 실행하면 ab가찍힘.








신고

'study' 카테고리의 다른 글

스터디 07/18-1 (Thread)  (0) 2009.07.03
스터디 07/11-4 (Generics, varargs, enum)  (0) 2009.07.03
스터디 07/11-3(Collection)  (0) 2009.07.03
스터디 07/11-2(Exception)  (0) 2009.07.03
스터디 07/11-1 (Object, wrapper, StringBuffer, StringTokenizer)  (0) 2009.07.03
자바 문법요약  (0) 2009.07.02
Posted by 대절님

댓글을 달아 주세요



티스토리 툴바