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을 상속받고 있다. 설정값중 변할 수 있는 값들을 따로 저장하거나 읽을때 사용
|
[String to Int]
int i = Integer.parseInt(str);int i = Integer.valueOf(str).intValue();
[Double to String]
String str = Double.toString(d);
[Long to String]
String str = Long.toString(l);
[Float to String]