20.03 ~ 20.08 국비교육/JAVA

package java.util.

찹키리 2020. 3. 31. 18:06

<java.util.*>

 

: import를 필요로 한다.(java.lang 패키지를 제외하고는 모두 import를 통해 참조한다)

-> 특히 유틸 패키지는 활용도가 매우 높기 때문에  반드시 다 외우도록 한다★★★

 

 

1. Date

 

: 날짜를 다루는 클래스(거의 모든 프로그램에 날짜가 사용된다)
그러나 Date 클래스 코드는 권장되지 않는 비권장 코드다. 사용해도 틀린 것은 아니고, 많은 사람들이 사용하지만 날짜를 사용할 때는 Calendar 클래스를 권장한다. 

 

 

 


2. Calendar

 

: 날짜를 사용할 때 권장되는 클래스다. setter와 getter를 사용해 날자를 가져온다.

 

 

 


3. String Tokenizer

 

: 문자열 분리 클래스

주로 배열과 반복문의 흐름으로 이어진다

 

 

ex.
"개구리,왕눈이,아로미,투투"
: 쉼표를 기준으로 해서 분리해라 -> 네 덩어리

 

*delims: 분리기호(쉼표를 기준으로 분리)

 

 

"JAVA=JSP;MS=ASP.NET;PHP=PHPScript

delims -> = ; 두 개
두 개의 delims를 기준으로 문자열을 분리한다.

 

 

<예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
 
public class ShowParse {
    public static void main(String args[]) {
        StringTokenizer st = new StringTokenizer("멍멍,왕왕,월월,웩웩,꽉꽉"",");
 
        System.out.println("문자열의 수: " + st.countTokens() + "개");
 
        while(st.hasMoreTokens()) {
            System.out.println(st.nextToken()); 
        //이 while문은 하나의 패턴이다
        //토큰이 남아 있으면 반복문 실행
        //각각의 요소를 하나씩 꺼내 출력한다.
        }
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

 

 

 

 

4. Vector

 

: 데이터들의 저장과 이동을 위한 클래스

 
1)배열을 개선한 클래스
배열의 단점: 크기가 한번 정해지면 수정할 수 없다.(초기화 불가)

 

2)크기가 동적이다.

: 상황에 따라 크기를 늘리거나 줄일 수 있다. 요소를 넣으면 자동으로 크기가 늘어난다.

 

3)객체만 입력된다.

: 기본형은 요소에 들어갈 수 없다.

 

4)서로 다른 인스턴스를 저장 가능(Integer, String, Long 등등등 다양한 조합이 가능)
-> 이 모든 것을 받을 수 있는 것 = object

 

5)요소를 외부로 복사하면 casting(형변환)이 필요하다.

 

6)형변환이 하기 싫다면 generic을 사용한다.

Vector v = new Vertor(); ---> 기본생성자
Vector <T>v = new Vector<T>(); ---> 타입 지정(generic)

7)요소를 꺼내면(복사x 삭제 등 완전히 꺼낸 경우) 그 자리가 줄어든다.

-> length 줄어든다.

8)순서가 있다.

-> index

 

9)최근엔 vector(thread safe o)대신 arraylist(thread safe x, 자원을 덜 사용)를 권장하기도 한다.

 

 

<예제>

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
 
import java.util.*;
 
public class SearchDelete {
    public static void main(String args[]) {
        String name[] = {"멍멍""냐옹""꿀꿀"};
 
        Vector v = new Vector(); //정석
        String s = "멍멍";
 
        for(int i = 0; i < name.length; i++) {
            v.addElement(name[i]); //vector에 요소 넣을 때 사용
        }
        if(v.contains(s)) { //vector에 요소가 포함되어 있으면 참
            int i = v.indexOf(s);
            System.out.println("인덱스 " + (i+1+ "번째에 있음");
        } else System.out.println("해당 객체 없음");
 
        v.removeElementAt(0); //첫 번째 element 지워라
 
        for(int j = 0; j < v.size(); j++) {
            s = (String)v.elementAt(j); //j번째 요소 
            //casting 반드시 필요
            //앞의 데이터가 지워지면 하나씩 땡겨지면서 채워진다.
            System.out.println(j + "번째 요소는: " + s);
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter




5. Hashtable

 

: 비슷한 기능을 하는 클래스로 Hashmap이 있는데 차이점은 thread safe의 유무

Hashtable ---> thread safe o

Hashmap ---> thread safe x

 


1)객체를(만) 저장

: 기본형X

 

2)순서가 필요없다.

 

3)복사해서 꺼낼 경우 형변환이 필요하다.

 

4)형변환하지 않으려면 generic 사용

 

5)찾는 key가 없으면 null값을 반환한다.

 

 

-입력 메소드:
put(key, value);

-반환 메소드:
get(key)

 


*Hash
=빠르게 찾는

->Hash 알고리즘 사용 


ex. 3이라는 숫자를 찾아라.

: 변수 % 3 중 나머지가 0, 1, 2 으로 나눈다. -> 나머지가 0인 그룹에서 3을 찾는다.

 

 

 


6. Properties

 

: 속성 문서 및 속성값을 저장할 때 주로 사용한다. 굉장히 많이 사용하는 클래스다.

 


1)Hashtable의 하위클래스로, Hashtable의 성격을 상속받았다.

 

2)key도 value도 String으로 고정되어 있다.

-> 형변환이 필요 없다.

'20.03 ~ 20.08 국비교육 > JAVA' 카테고리의 다른 글

package java.net.  (0) 2020.04.02
package java.io.  (0) 2020.04.01
package java.lang.  (0) 2020.03.31
패키지, 패키지 간 참조  (0) 2020.03.31
Synchronized  (0) 2020.03.31