블로그 이미지
GUCCI

카테고리

전체보기 (111)
여행 (1)
기기 (2)
쇼핑 (0)
게임 (0)
etc. (6)
취업이야기 (0)
업무일지 (5)
리눅스 (38)
웹프로그래밍 (2)
네트워크 (4)
JAVA (17)
Android (0)
IOS (2)
LUA (8)
C/C++ (1)
Objective C (2)
SERVER (2)
그누보드4 (1)
MSSQL (2)
Programming (1)
자바스크립트 (4)
HTML/CSS (1)
LGNAS (0)
Total
Today
Yesterday

'패키지'에 해당되는 글 1건

  1. 2011.03.03 java.util 패키지 3

java.util 패키지

JAVA / 2011. 3. 3. 15:55

 

  java.util  패키지

 

  Date 클래스

 

   날짜와 시간을 관리 하는 대표적인 클래스. GMT 시간으로 반환한다. 1/1000초 까지 반환한다.

   1900 년과 1970년을 기준으로하는 메서드들이 존재하며 1970년이 기본 기준이된다.

 

   *gerYear( ) : 메서드만 기준이 1900년도로 설정되어 있다.

   getHours( ) : 현재 시간을 반환한다. 0~ 23시

   getMinutes( ) : 현재 분을 반환한다. 0 ~ 59분

   getSeconds( ) : 현대 초를 반환한다. 0 ~ 59초

 

   import java.util.Date;
   class Data1{
       public static void main(String[] args) {
           Date date=new Date();
           System.out.println(date); //toString이 Date클래스에 오버라이딩 되어 있다.
           
int h=date.getHours(); //현재 시간을 h에 대입
           int m=date.getMinutes(); //현재 분을 m에 대입
           int s=date.getSeconds(); //현재 초를 s에 대입
           System.out.println("현재 시간은 "+h+"시 "+m+"분 "+s+"초 입니다");

 

           -출력 결과-

Thu Nov 19 14:16:12 KST 2009
현재 시간은 14시 16분 12초 입니다
현재 시간은 2시 16분 12초 입니다
계속하려면 아무 키나 누르십시오 . . .

 

  Calendar 클래스

 

   현재 날자 시간 정보를 필드 상수값으로 보관한다. 사용하고자 할 때 해당 상수값을 set 하거나

   get 하여 사용하게 된다.

 

   getTime( ) : 현재 날자 시간 정보를 Date 클래스 형태로 반환한다.

   getInstance( ) : Calendar 인스턴스를 생성하여 반환한다.

   set( ) : 연월일시분초에 해당되는 매개변수를 받아 set 한다.

   get( ) : 해당 필드값을 반환한다.

   after( ) : 매개변수 Calendar 객체의 시간이 더 크다면 true 반환

   befor( ) : after와 반대 기능을 수행한다.

   equals ( ) : 두 객체의 날자 시간 정보가 같으면 true 반환.

   add( ) : 필드값에 대해 감산 및 가산한다.

   roll( ) :  필드값을 변경하지 않고 감산 가산한다. 범위가 해당 필드 범위사이에서 설정

                  일에 대한 기준은 해당 월에 따른 일수에 따라 설정된다.

 

   import java.util.Calendar;
   class CalendarTest{
       public static void main(String[] args) {
           Calendar c=Calendar.getInstance();
           Calendar c2=Calendar.getInstance();
           System.out.println("Calendar 클래스 시간과 날짜 출력 ");
           c2.set(2000,9,11); //연월일시분초에 대한 set
          
System.out.print(c.get(Calendar.YEAR)+"년"); //현재 년도 필드 YEAR 리턴
          
System.out.print((c.get(Calendar.MONTH)+1)+"월"); //위와 같은 내용
          
System.out.print(c.get(Calendar.DATE)+"일");
          System.out.print(c.get(Calendar.HOUR)+"시");
          System.out.print(c.get(Calendar.MINUTE)+"분");
          System.out.println(c.get(Calendar.SECOND)+"초");  
          if(c.after(c2)) //c 시간이 c2 시간보다 클 경우 true . 반대는 before 메서드
               
System.out.println("현재 시간은 2000년 9월 11일 이후입니다.");
          else
               System.out.println("현재 시간은 2000년 9월 11일 이전입니다."); }}

 

             -출력 결과-

Calendar 클래스 시간과 날짜 출력
2009년11월19일2시15분42초
현재 시간은 2000년 9월 11일 이후입니다.
계속하려면 아무 키나 누르십시오 . . .

 

   import java.util.Calendar;
   class Test{
   public static void main(String[] args) {
      Calendar date=Calendar.getInstance();
      date.set(2005,7,31); //연월일 set
      System.out.println(toString(date)); //오버라이딩된 toString 호출
      System.out.println("=1일 후 = ");
      date.add(Calendar.DATE,1); //현재 날에 1일 더한다. 31일이므로 새달 1일이 된다.
      System.out.println(toString(date));
      System.out.println("=31일 후 = ");
      date.roll(Calendar.DATE,31); //현재 월의 날의 수를 기준으로 31일 돈 후 2일이 된다.
      System.out.println(toString(date)); }
   public static String toString(Calendar c) {
      return c.get(Calendar.YEAR)+"년"+c.get(Calendar.MONTH)+"월"

                +c.get(Calendar.DATE)+"일"; }}

-출력 결과-

2005년7월31일
=1일 후 =
2005년8월1일
=31일 후 =
2005년8월2일   <-- roll에 의한 변화. 달에는 영향을 미치지 않는다.
계속하려면 아무 키나 누르십시오 . . .

 

 

  Gregorian Calendar 클래스 

 

   Calendar 클래스를 상속받고 있다. 1년이 365.2526년 시간이 지날수록 계산이 틀려지는 것을

   해결할 수 있다. 윤년을 처리할 수 있는 메서드를 가진다. isLeapYear ( )

 

   isLeapYear (int year ) : 윤년이 맞다면 true를 반환 아니면 false를 반환한다.

  List 인터페이스

 

   순서가 있는 데이터의 집합이다. 데이터의 중복을 허용한다.대표적인 구현 클래스는 ArrayList,

   LinkedList, Stack, Vector 가 있다.

 

  ArrayList 클래스

 

  배열의 기능과 가장 비슷한 클래스이다. 저장공간으로 배열을 사용한다. 저장 순서가 유지되고

  중복이 허용된다.

 

  add ( ) : 해당 데이터를 리스트에 추가한다. 기본적으로 가장 뒤에 추가 위치 index 사용가능

  retainAll( ) : 해당 데이터가 자신의 리스트에 포함되어 있다면 true 아니면 false

  contains( ) : 해당 데이터가 자신의 리스트에 포함되어 있다면 true 아니면 false

  set ( ) : 해당 데이터를 수정한다. 바꾼다. 위치 index 사용가능

  get ( ) : 해당 데이터를 반환한다. 위치 index 사용가능

  remove ( ) : 해당 데이터를 삭제한다. 위치 index 사용가능

  size ( ) : 리스트의 크기를 반환한다. 원소 개수

 

   import java.util.*;
   class ArrayListTest{
       public static void main(String[] args) {
       final int LIMIT =10;
       String source="0123456789abcdefghijABCDEFGHI!@#$%^&*()ZZZ";
       int length=source.length(); //문자열의 개수 보관
     
ArrayList list= new ArrayList(length/LIMIT+10); //메모리 할당
      
for (int i=0; i<length; i+=LIMIT)  {
         if(i+LIMIT<length)
           list.add(source.substring(i,i+LIMIT)); //10개씩 문자를 add 추가한다.
         else
           list.add(source.substring(i));  }

      for (int i=0; i<list.size();i++ )
           System.out.println(list.get(i)); }}

 

-출력 결과-

0123456789
abcdefghij
ABCDEFGHI!
@#$%^&*()Z
ZZ
계속하려면 아무 키나 누르십시오 . . .

  LinkedList 클래스

 

   ArrayList와 동일한 내용을 가지고 있다. 데이터 추가시 첫번째 원소와 마지막 원소에 데이터를

   추가할 수 있는 addFirst( ), addLast( ) 메서드를 가지고 있다. Queue 인터페이스를 구현하고

   있다.

 

    peek( ) : 데이터 가지고 온다 (복사)

   polll( ) : 데이터를 가지고 온다 (잘라내기)

 

  Stack 클래스

 

    Last in First Out 형식을 사용한다. 다른 List 와 동일하나 add가 push. romove가 pop으로

    메서드를 사용한다.

 

  Vector 클래스

 

   Vector 클래스의 기본 용량은 10이다.

 

   addElement ( ) : 데이터를 추가한다.

   capacity ( ) : 클래스의 용량값을 반환한다.

 

   import java.util.Vector;
   class VectorTest{
      public static void main(String[] args) {
         Vector[] v=new Vector[3];
         v[0]=new Vector(); //기본 용량 10
         v[1]=new Vector(5); //기본 용량 5
         v[2]=new Vector(5,3); //기본 용량 5 넘칠때 3씩 증가
         for (int i=0; i<v.length; i++)  {
            System.out.println("V["+i+"] size ="+v[i].size());
            System.out.println("V["+i+"] capacity = "+v[i].capacity());   }
         for (int i=0; i<3;i++ )  
             for (int j=0; j<44;j++ )
                  v[i].addElement(new Integer(j));   
         for (int i=0; i<v.length; i++)  {
             System.out.println("V["+i+"] size ="+v[i].size());
             System.out.println("V["+i+"] capacity = "+v[i].capacity()); } }}

-출력 결과-

V[0] size =0
V[0] capacity = 10
V[1] size =0
V[1] capacity = 5
V[2] size =0
V[2] capacity = 5
V[0] size =44
V[0] capacity = 80
V[1] size =44
V[1] capacity = 80
V[2] size =44
V[2] capacity = 44
계속하려면 아무 키나 누르십시오 . . .

 

 

  Set 인터페이스 

 

   순서를 유지하지 않는다. 데이터의 중복을 허용하지 않는다. 대표적인 구현 클래스는 HashSet,

   TreeSet 이 있다.

 

  HashSet 클래스

 

   데이터의 순서를 유지하지 않는다. 중복을 허용하지 않으며 정렬 기능이 없다.

 

   add( ) : 데이터를 삽입한다. 중복 데이터는 제외한다.

 

   import java.util.*;
   class HashSetTest{
      public static void main(String[] args) {
      Object [] objarr = {"1",new Integer(1),"2","2","3","3","4","4","4"};
      Set set=new HashSet();
      for (int i=0; i<objarr.length; i++)  {
         set.add(objarr[i]);   } //해당 배열의 원소를 삽입한다.
       System.out.println(set); }}

 

-출력 결과-

[3, 2, 1, 1, 4]  <-- 중복된 데이터는 제외된다.
계속하려면 아무 키나 누르십시오 . . .


  TreeSet 클래스

 

   HashSet과 같으며 정렬기능이 추가되어 있다.

 

   subSet ( ) : 시작 값부터 끝값까지 검색하여 반환한다.

 

 

  Map 인터페이스

 

  키(key)와 값(value)이 쌍을 이루는 데이터 집합으로 순서를 유지하지 않는다. 값의 중복은 허용

  되나 key의 중복은 허용하지 않는다. 대표적인 구현 클래스는 HashMap, TreeMap, Hashtable

  이 있다.

 

  Hashtable 클래스

 

    Enumeration 인터페이스를 사용해서 값을 가져온다.

 

   put(키값, 값) : 해당 키와 값을 저장합니다.

   containsKey( ) : key값에 해당되는 데이터가 있다면 true

   containsValue( ) : 해당 값에 해당되는 데이터가 있다면 true

   keys( ) : 현재 모든 키값을 반환합니다.

   get ( ) : key에 해당하는 값을 반환합니다.

 

   import java.util.Hashtable;
   import java.util.Enumeration;
   class HashtableTest{
      public static void main(String[] args) {
          Hashtable ht = new Hashtable();
          ht.put("1","가위");
          ht.put("2","바위");
          ht.put("3","보");
          if(ht.containsKey("1"))
              System.out.println("가위 포함되어 있음");
          if(ht.containsValue("보"))
              System.out.println("보는 3번으로 포함되어 있음");
         System.out.println("Hashtable의 크기는 : "+ht.size());
         ht.remove("1");
         Enumeration enu=ht.keys();
         while(enu.hasMoreElements())  {
             Object key=enu.nextElement();
             Object value=ht.get(key);
             System.out.println("키 = "+key+" 값 = "+value); } }}

 

-출력 결과-

가위 포함되어 있음
보는 3번으로 포함되어 있음
Hashtable의 크기는 : 3
키 = 3 값 = 보
키 = 2 값 = 바위
계속하려면 아무 키나 누르십시오 . . .

  HashMap 클래스

 

   import java.util.HashMap;
   import java.util.Scanner;
   class HashMapTest{
      public static void main(String[] args) {
      HashMap map= new HashMap();
      map.put("abc","1234");
      map.put("asdf","1111");
      map.put("asdf","1234");
      Scanner s= new Scanner(System.in); //화면에서 입력받음
      while(true)  {
          System.out.println("id와 password 입력하세요 ");
          System.out.print("id : ");
          String id=s.nextLine().trim(); //입력받고 trim으로 공백 제거
          
System.out.println();
          System.out.print("password :");
          String ps=s.nextLine().trim();

          if(!map.containsKey(id)){
               System.out.println("입력하신 id는 존재하지 않습니다");
               continue;
          }else{
                if(!map.get(id).equals(ps))
              System.out.println("password가 맞지 않습니다");
           else{
              System.out.println("id와 password가 일치합니다");
              break;}  }  }}}

-출력 결과-

id와 password 입력하세요
id : abee

password :12
입력하신 id는 존재하지 않습니다
id와 password 입력하세요
id : abc

password :12
password가 맞지 않습니다
id와 password 입력하세요
id : asdf

password :1234
id와 password가 일치합니다
계속하려면 아무 키나 누르십시오 . . .

 

Properties 클래스

 

Hashtable을 상속받고 있다. 설정값중 변할 수 있는 값들을 따로 저장하거나 읽을때 사용

 

 

 

 

 

  SimpleDateFormat 클래스

 

   fomat 메서드를 사용하여 현재 날자 시간 정보의 원하는 포맷형태로 반환한다.

  

   import java.text.SimpleDateFormat;
   import java.util.Date;
     class SimpleFormatTest{
        public static void main(String[] args) {
          Date today=new Date();
          SimpleDateFormat sd1,sd2,sd3,sd4;
          sd1=new SimpleDateFormat("yyyy년mm월dd일"); //각 해당 format 설정
          sd2=new SimpleDateFormat("yyyy-mm-dd HH:mm:ss.SSS");//각 해당 format 설정
          sd3=new SimpleDateFormat("yyyy-mm-dd hh:mm:ss a");//각 해당 format 설정
          sd4=new SimpleDateFormat("올해의 D번째 날입니다");//각 해당 format 설정
          System.out.println(sd1.format(today)); //format에 맞게 today 출력
          System.out.println(sd2.format(today));
          System.out.println(sd3.format(today));  
          System.out.println(sd4.format(today)); }}

   -출력 결과-

2009년16월19일
2009-16-19 14:16:34.875
2009-16-19 02:16:34 오후
올해의 323번째 날입니다
계속하려면 아무 키나 누르십시오 . . .

 

[출처] java.util 패키지|작성자 stryper_top


'JAVA' 카테고리의 다른 글

이미지 태그 SRC 경로 추출  (3) 2011.03.16
파일명 추출  (2) 2011.03.16
Thread 클래스  (3) 2011.03.08
HttpURLConnection 이용시 헤더값 세팅 방법  (3) 2011.03.03
java.net - Url 클래스  (5) 2011.03.03
Posted by GUCCI
, |

최근에 달린 댓글

글 보관함