2013년 10월 29일 화요일

자바컬렉션프레임워크란?(Java Collection Framework) java2에서 추가된 자바 자료구조 클래스들의 모임

자바컬렉션프레임워크란?(Java Collection Framework)

java2에서 추가된 자바 자료구조 클래스들의 모임 (Java Collection Framework)
 
Collection, Map, Set, List, StoredMap, StoredSet등의 6개의 인터페이스와 이동을 구성하는 10여가지의 클래스들로 Java Collection FrameWork을 구성.
 
자바 App에서 대량의 Data를 다룰때 일관된 I/F를 제공(DB를 사용안해야 하는 경우에 아주 적절하다)
 
객체를 저장하고 핸들링 하는 작업을 수행한다.(자바기반 환경에서 데이터를 저장하여 이동할 때 이용)
 
프로그램 실행시 소형 데이터베이스 기능을 한다(데이터의 입력, 수정, 삭제, 검색기능가능)
 
 
java.util.Collection : 객체들의 단순한 모임을 저장하기 위한 컬렉션 클래스의 최상위 자료형
java.util.Set : 중복되지 않는 수학적인 의미의 객체모임(순서 없고, 중복없다), Collection을 상속
java.util.List : 순차적 나열에 의한 순서 지정이 가능한 구조. Collection을 상속, 중복없다.
java.util.Map : Key와 Value로 이루어진 구조
java.util.SortedSet : 값들이 정렬된 Set, Set을 상속했다(원래 Set의 순서가 없다)
java.util.SortedMap : Key가 정열된 Map




간단한 예제를 작성하자.
(자료구조 사용법 및 출력하는 방법 잘 기억하자.)
 
 
package onj;
 
//Set, List, Vector는 for(Object obj : 자료구조)로 추출 가능
import java.util.*;
public class JCFTest {
 public static void main(String[] args) {
  Set set = new HashSet();
  set.add("OnJ");//
  set.add("OnJ");//  오류는 아니지만 중복안됨
  set.add(new Integer(23));// 3 primitive 안됨java2
  System.out.println(set);
  for (Object obj : set) {
   System.out.println("value : " + obj);
  }
  List list = new ArrayList();
  list.add("OracleJavaCommunity");//
  list.add("OracleJavaCommunity");//  중복허용
  list.set(0, "OnJ");             // 처음 0번째 덮어쓴다.
  System.out.println(list);
  for (Object obj : list) {
   System.out.println("value : " + obj);
  }
  Vector v = new Vector(5);
  v.addElement("OnJ");
  v.add("OracleJavaNew.kr");
  v.set(1, "OnjProgramming");
  v.setElementAt("개발자를위하여", 0);
  System.out.println(v);
  for (Object obj : v) {
   System.out.println("value : " + obj);
  }
  Map<String, Object> map = new HashMap();
  map.put("A", new Integer(3)); // 객체만 저장가능하므로 래퍼클래스 Integer이용
  map.put("B", "OnJ");
  map.put("B", "OnJ");          // key중복안됨
  System.out.println(map);
  // for (String s : map.keySet()) {
  // System.out.println("value: " + map.get(s));
  // }
  for (Map.Entry<String, Object> entry : map.entrySet()) {
   System.out.println("Key: " + entry.getKey() + "-"
     + entry.getValue());
  }
 
 
  //아래는 시스템 프로퍼티를 읽어오는 예제이다.()Properties는 JCF에는 속하지 않으나 자주 사용되니 잘 익히자.
  Properties props = System.getProperties();
 
  for (Map.Entry<Object, Object> entry : props.entrySet()) {
   System.out.println("Key: " + entry.getKey() + ":::::::::"
     + entry.getValue());
  } 
 }
}
 
 
 
[결과]
 
[23, OnJ]
value : 23
value : OnJ
[OnJ, OracleJavaCommunity]
value : OnJ
value : OracleJavaCommunity
[개발자를위하여, OnjProgramming]
value : 개발자를위하여
value : OnjProgramming
{A=3, B=OnJ}
Key: A-3
Key: B-OnJ
Key: java.runtime.name:::::::::Java(TM) SE Runtime Environment
Key: sun.boot.library.path:::::::::C:\java\jre7\bin
Key: java.vm.version:::::::::24.0-b56
Key: java.vm.vendor:::::::::Oracle Corporation
Key: java.vendor.url:::::::::http://java.oracle.com/
Key: path.separator:::::::::;
Key: java.vm.name:::::::::Java HotSpot(TM) Client VM
Key: file.encoding.pkg:::::::::sun.io
Key: user.country:::::::::KR
Key: user.script:::::::::
Key: sun.java.launcher:::::::::SUN_STANDARD
Key: sun.os.patch.level:::::::::Service Pack 3
Key: java.vm.specification.name:::::::::Java Virtual Machine Specification
Key: user.dir:::::::::C:\java\project\java
Key: java.runtime.version:::::::::1.7.0_40-b43
Key: java.awt.graphicsenv:::::::::sun.awt.Win32GraphicsEnvironment
Key: java.endorsed.dirs:::::::::C:\java\jre7\lib\endorsed
Key: os.arch:::::::::x86
Key: java.io.tmpdir:::::::::C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp\
Key: line.separator:::::::::

Key: java.vm.specification.vendor:::::::::Oracle Corporation
Key: user.variant:::::::::
Key: os.name:::::::::Windows XP
Key: sun.jnu.encoding:::::::::MS949
Key: java.library.path:::::::::C:\java\jre7\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Java/jre7/bin/client;C:/Java/jre7/bin;C:/Java/jre7/lib/i386;C:\app\Administrator\product\11.2.0\dbhome_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\java\eclipse;;.
Key: java.specification.name:::::::::Java Platform API Specification
Key: java.class.version:::::::::51.0
Key: sun.management.compiler:::::::::HotSpot Client Compiler
Key: os.version:::::::::5.1
Key: user.home:::::::::C:\Documents and Settings\Administrator
Key: user.timezone:::::::::
Key: java.awt.printerjob:::::::::sun.awt.windows.WPrinterJob
Key: file.encoding:::::::::MS949
Key: java.specification.version:::::::::1.7
Key: java.class.path:::::::::C:\java\project\java\bin
Key: user.name:::::::::Administrator
Key: java.vm.specification.version:::::::::1.7
Key: sun.java.command:::::::::onj.JCFTest
Key: java.home:::::::::C:\java\jre7
Key: sun.arch.data.model:::::::::32
Key: user.language:::::::::ko
Key: java.specification.vendor:::::::::Oracle Corporation
Key: awt.toolkit:::::::::sun.awt.windows.WToolkit
Key: java.vm.info:::::::::mixed mode
Key: java.version:::::::::1.7.0_40
Key: java.ext.dirs:::::::::C:\java\jre7\lib\ext;C:\WINDOWS\Sun\Java\lib\ext
Key: sun.boot.class.path:::::::::C:\java\jre7\lib\resources.jar;C:\java\jre7\lib\rt.jar;C:\java\jre7\lib\sunrsasign.jar;C:\java\jre7\lib\jsse.jar;C:\java\jre7\lib\jce.jar;C:\java\jre7\lib\charsets.jar;C:\java\jre7\lib\jfr.jar;C:\java\jre7\classes
Key: java.vendor:::::::::Oracle Corporation
Key: file.separator:::::::::\
Key: java.vendor.url.bug:::::::::http://bugreport.sun.com/bugreport/
Key: sun.io.unicode.encoding:::::::::UnicodeLittle
Key: sun.cpu.endian:::::::::little
Key: sun.desktop:::::::::windows
Key: sun.cpu.isalist:::::::::pentium_pro+mmx pentium_pro pentium+mmx pentium i486 i386 i86

[개강확정강좌]오라클자바커뮤니티에서 운영하는 개발자 전문교육 ,개인80%환급(www.onjprogramming.co.kr)

[주간]
  [11/4]Spring3.X, MyBatis, Hibernate실무과정
  [11/6]SQL초보에서실전전문가까지

[평일야간]
  [11/1]C#,ASP.NET마스터
  [11/5]iPhone 하이브리드 앱 개발 실무과정
  [11/7]JAVA&WEB프레임워크실무과정
  [11/8]Spring3.X, MyBatis, Hibernate실무과정
[주말]
  [11/2]C#,ASP.NET마스터
  [11/2]Spring3.X, MyBatis, Hibernate실무과정
  [11/2]JAVA&WEB프레임워크실무과정
  [11/9]안드로이드개발자과정
 




댓글 없음:

댓글 쓰기