23. Back-end/23. JAVA

ํ† ํฐ(Tokenizer), List, Set,Map, Generic

keemzeehae 2022. 1. 12. 21:51

โ–ผjava.util.String Tokenizer

ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด์„ ์—ฌ๋Ÿฌ๊ฐœ๋กœ ๋ถ„๋ฆฌ (ํŒŒ์‹ฑ, parsing)

String ์˜ split ๋ฉ”์„œ๋“œ์™€ ๋น„์Šทํ•œ๋ฐ ๋ฆฌํ„ดํ•˜๋Š” ํƒ€์ž…์ด ๋‹ค๋ฅธ๊ฑฐ์ง€

split์€ ๊ฒฐ๊ณผ๋ฌผ ๋ฐฐ์—ด๋กœ ๋ฐ›์•„์•ผํ•จ

String [] s = str.split(",");

๋ถ„๋ฆฌ๋œ ๋ฌธ์ž์—ด์„ ํ† ํฐ(token)์ด๋ผํ•จ 

 

1. ์ƒ์„ฑ์ž

1) ๋ถ„๋ฆฌํ•  ๋ฌธ์ž์—ด

2) ๋ถ„๋ฆฌ๊ธฐ์ค€ (delim) 

 

2. ์ฃผ์š” ๋ฉ”์„œ๋“œ 

hasmoretokens() ๋œป: ์ž๋ฅผ ํ† ํฐ์ด ๋” ์žˆ๋‚˜์š”?

๋‹ค์Œ ์‰ผํ‘œ๊ฐ€ ์žˆ๋Š”์ง€ ์žˆ์œผ๋ฉด true๋ฅผ ์–˜๊ธฐํ•ด ์—†์œผ๋ฉด false๋ฅผ ์–˜๊ธฐํ•˜๊ณ  ์ข…๋ฃŒ

nextToken() : ๋‹ค์Œ ํ† ํฐ์„ ๋ถˆ๋Ÿฌ์˜ด


โ–ผCollection Framework

- ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ 

- ์—ฌ๋Ÿฌ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ชจ์œผ๋ ค๊ณ  ํ•จ

- ์ž๋ฃŒ๊ตฌ์กฐ

(์ด๋Ÿฐ๊ฒŒ ๋˜ ๋ฐฐ์—ด์ด ์žˆ์—ˆ์ง€ ๊ทผ๋ฐ ์•ฝ๊ฐ„ ๋ถˆํŽธํ•œ ์ ์ด ์ถ”๊ฐ€๋˜๋ฉด ๋‹ค์‹œ ๋งŒ๋“ค์–ด์•ผํ•˜๊ฑฐ๋‚˜ ์ค„์–ด๋“ค๋ฉด ๋‹ค์‹œ ์ˆ˜์ •ํ•ด์•ผํ•จ)

 

 

1. ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค 

 

1) java.util.List

- ์ˆœ์„œ๊ฐ€ ์œ ์ง€๋œ๋‹ค

- ๊ฐ’์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉ ( ๋ฐฐ์—ด ์นธ์— ๋งŒ์•ฝ์—  1 0 1 ์„ ๋„ฃ์–ด๋„ ํ—ˆ์šฉ)

- ๋ฐฐ์—ด๊ธฐ๋ฐ˜(index๋ฅผ ์‚ฌ์šฉํ•˜๋Š” list์ด๋‹ค)

- ArrayList, LinkedList...(๊ตฌํ˜„ํ•œ ๋Œ€ํ‘œ์ ์ธ class)

๋ฆฌํ„ดํ•ด์ค„๋•Œ (์ˆ˜์ •์„ ํ•ด๋„ ์˜ค๋ฅ˜๊ฐ€ ๋œจ์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด) List๋กœ ๋ฆฌํ„ดํ•ด์ค„๊ฒƒ

 

- ์ฃผ์š”๋ฉ”์„œ๋“œ

a. add(E,e) :์ƒˆ๋กœ์šด ๋ฐ์ดํ„ฐ๋ฅผ List์— ๋งˆ์ง€๋ง‰์— ์ถ”๊ฐ€ ํ•  ๋•Œ ์‚ฌ์šฉ

   add(int index,E e): index๋ฒˆํ˜ธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž… (์ค‘๊ฐ„์— ๋ผ์›Œ๋„ฃ๊ธฐ)

b. get(int index) : index๋ฒˆํ˜ธ์˜ ๋ฐ์ดํ„ฐ (Element, ์š”์†Œ) ๋ฅผ ๋ฐ˜ํ™˜

c. size() : ์š”์†Œ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ (๋ฐฐ์—ด์˜ length์™€ ๊ฐ™์Œ)

d. set(int index, E e) : index๋ฒˆํ˜ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •

e. remove(int index) : index ๋ฒˆํ˜ธ์˜ ๋ฐ์ดํ„ฐ(์š”์†Œ)๋ฅผ ์‚ญ์ œ

f. clear( ) : ๋ชจ๋“  ์š”์†Œ๋ฅผ ์‚ญ์ œ(size๊ฐ€ 0) 

 

2) java.util.Set

- ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค( ์˜ˆ๋ฅผ ๋“ค์–ด a b c ๋ฅผ ๋„ฃ์—ˆ๋Š”๋ฐ ๊บผ๋ƒˆ์„ ๋•Œ๋Š” c b a ์ด๋ ‡๊ฒŒ ๋˜์–ด์žˆ์„ ์ˆ˜๋„ ์žˆ์Œ)

- ๊ฐ’์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค( ์ค‘๋ณต์ด ๋˜๋ฉด ์‚ญ์ œ๋ฅผ ํ•ด๋ฒ„๋ฆฐ๋‹ค 1 0 1 -> 1 0 )

- HashSet...(๋Œ€ํ‘œ์ ์ธ ํด๋ž˜์Šค)

- get์ด๋ผ๋Š” ๋ฉ”์„œ๋“œ๊ฐ€ ์—†๋‹ค!

- List์™€ ๋น„์Šทํ•œ ๋ฉ”์„œ๋“œ(add, remove, clear, size)

- HashSet..

 

3) java.util.Map

- ์ˆœ์„œ๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค

- **Key ์™€ Value๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค

(key๋กœ ์ ‘๊ทผ )

- Key๋Š” ์ค‘๋ณต์ด ์•ˆ๋œ๋‹ค , Value๋Š” ์ค‘๋ณต ํ—ˆ์šฉ๋œ๋‹ค

- HashMap ..(๋Œ€ํ‘œ์ ์ธ ํด๋ž˜์Šค)

 

- ์ฃผ์š”๋ฉ”์„œ๋“œ

a. put(K,V) : Key๋กœ Value ์ถ”๊ฐ€, Key๊ฐ€ ์ค‘๋ณต์ด๋ฉด Value ์ˆ˜์ •

  -> ๋˜‘๊ฐ™์€ ํ‚ค์— ๋‹ค๋ฅธ value๋ฅผ ๋„ฃ์œผ๋ฉด ์ˆ˜์ •์ด ๋œ๋‹ค

b. get(K) : ํ•ด๋‹น ํ‚ค๋กœ Value๋ฅผ ๊บผ๋‚ด์˜ค์ž -> Key๋กœ Value ๋ฐ˜ํ™˜

c. clear( ) : ์ „์ฒด ์š”์†Œ ์‚ญ์ œ

d. remove(K) : key๊ฐ€ ์ผ์น˜ํ•˜๋Š” ์š”์†Œ๋ฅผ ์‚ญ์ œ

e. remove(K,V) : key์™€ value๊ฐ€ ๋‘˜๋‹ค ์ผ์น˜ํ•ด์•ผ ์š”์†Œ๋ฅผ ์‚ญ์ œ

f. keyset( ) : Key๋“ค์„ Setํƒ€์ž…์œผ๋กœ ๋ณ€๊ฒฝ

 

List, Set์€ ๋ถ€๋ชจ๊ฐ€ collection Interface ๋™์ผํ•œ ๋ฉ”์„œ๋“œ

Map์€ ๋ถ€๋ชจ๊ฐ€ Collection interface๊ฐ€ ์•„๋‹ˆ๋‹ค (๊ฐ™์€ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์ง€ ์•Š๋Š”๋‹ค)

 

2. Generic

- ๋ฐ์ดํ„ฐํƒ€์ž…์˜ ์•ˆ์ •์„ฑ์„ ๋ณด์žฅ

- ํƒ€์ž…์˜ ๋ณ€๊ฒฝ์ด๋‚˜ ๊ฒ€์‚ฌ๋“ฑ์— ๋…ธ๋ ฅ์„ ์ค„์ž„

- ํด๋ž˜์Šค๋‚˜ ๋ฉ”์„œ๋“œ ๋“ฑ์—์„œ ์‚ฌ์šฉํ•  ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ์ปดํŒŒ์ผ์‹œ์— ๋ฏธ๋ฆฌ ์ง€์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

 โ–ฝ์‚ฌ์šฉ๋ฐฉ๋ฒ•

 <๋ฐ์ดํ„ฐํƒ€์ž…>

 <E> : E๋Š” ๋ณ€์ˆ˜๋ช…์„ ์˜๋ฏธ, generic์˜ ๋ฐ์ดํ„ฐํƒ€์ž…์„ ๋‹ด๋Š” ๋ณ€์ˆ˜

๋ ˆํผ๋Ÿฐ์Šคํƒ€์ž…๋งŒ ๋“ค์–ด๊ฐˆ์ˆ˜ ์žˆ์Œ (ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒํƒ€์ž…์€ ๋ชป๋“ค์–ด๊ฐ) 

private final int NUM=1; //๋ณ€์ˆ˜๋„ ์ƒ์ˆ˜๋กœ ์“ธ ์ˆ˜ ์žˆ์Œ

 

 

 

๋ฐฐ์—ด์€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ชจ์œผ๋Š” ๊ฒƒ!!

int๋‚˜ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๋Š” ์˜ค๋ธŒ์ ํ‹ฐ๋ธŒ ํƒ€์ž…์ด ์•„๋‹˜ ๊ทธ๋Ÿฐ ๊ฐœ๋…์ด ์•„๋‹˜

 

3. Iterator

- ๋ฐ˜๋ณตํ˜•, Enumeratrion๊ณผ ๋น„์Šท

- ์ฃผ๋กœ Set์˜ ์š”์†Œ๋“ค์„ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์•ผ ํ•  ๋•Œ 

 

Iterator<Genericttype>๋ณ€์ˆ˜๋ช… = haskset.iterator();

 

while(๋ณ€์ˆ˜๋ช….hasNExt()) {

    ๋ณ€์ˆ˜๋ช….next();

}


Java Class ๊ตฌ์„ฑ

package ํŒจํ‚ค์ง€๋ช…: ํ˜„์žฌํด๋ž˜์Šค๊ฐ€ ์†ํ•ด์žˆ๋Š” ํŒจํ‚ค์ง€๋ช… 

 

import ํŒจํ‚ค์ง€๋ช…. ํด๋ž˜์Šค๋ช…:  ํ˜„์žฌํด๋ž˜์Šค์—์„œ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๋‹ค๋ฅธํŒจํ‚ค์ง€์˜ ํด๋ž˜์Šค๋ช…

 

์ ‘๊ทผ์ง€์ •์ž [๊ทธ์™ธ์ง€์ •์ž] class ํด๋ž˜์Šค๋ช…{

 

 ๋ณ€์ˆ˜ (์„ ์–ธ)

  ์ ‘๊ทผ์ง€์ •์ž [๊ทธ์™ธ์ง€์ •์ž] ๋ฐ์ดํ„ฐํƒ€์ž… ๋ณ€์ˆ˜๋ช…;

 ๋ฉ”์„œ๋“œ (์„ ์–ธ)

  ์ ‘๊ทผ์ง€์ •์ž [๊ทธ์™ธ์ง€์ •์ž] ๋ฆฌํ„ดํƒ€์ž… ๋ฉ”์„œ๋“œ๋ช…([๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ๋“ค..]){

    ์ง€์—ญ๋ณ€์ˆ˜ ์„ ์–ธ

           ๋ฐ์ดํ„ฐํƒ€์ž… ๋ณ€์ˆ˜๋ช…;

    ๋ณ€์ˆ˜์„ ์–ธ๊ณผ ๊ฐ์ฒด ์ƒ์„ฑ(์ƒ์„ฑ์ž ํ˜ธ์ถœ)

           ๋ฐ์ธํ„ฐํƒ€์ž… ๋ณ€์ˆ˜๋ช…(์ฐธ์กฐ๋ณ€์ˆ˜๋ช…) =  new ์ƒ์„ฑ์ž();

    ๊ฐ์ฒด์˜ ๋ฉค๋ฒ„๋“ค์„ ์‚ฌ์šฉ

           ์ฐธ์กฐ๋ณ€์ˆ˜๋ช….๋ณ€์ˆ˜๋ช…

           ์ฐธ์กฐ๋ณ€์ˆ˜๋ช….๋ฉ”์„œ๋“œ๋ช…([์ธ์ž๊ฐ’๋“ค...]);

           ๋ฆฌํ„ดํƒ€์ž…๋ช… ๋ณ€์ˆ˜๋ช… = ์ฐธ์กฐ๋ณ€์ˆ˜๋ช….๋ฉ”์„œ๋“œ๋ช…([์ธ์ž๊ฐ’๋“ค...]);

 

     ํด๋ž˜์Šค๋ณ€์ˆ˜, ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ ์‚ฌ์šฉ

            ํด๋ž˜์Šค๋ช….๋ณ€์ˆ˜๋ช…

            ๋ฆฌํ„ดํƒ€์ž…๋ช… ๋ณ€์ˆ˜๋ช… = ํด๋ž˜์Šค๋ช….๋ฉ”์„œ๋“œ๋ช…([์ธ์ž๊ฐ’๋“ค...]);

 

     ๊ตฌ๋ฌธ

      if , switch, for, while, ๊ฐ์ข… ์—ฐ์‚ฐ์ž๋“ค...

 

}

 ์ƒ์„ฑ์ž (์„ ์–ธ)

  ์ ‘๊ทผ์ง€์ •์ž ํด๋ž˜์Šค๋ช…๊ณผ ๋™์ผํ•œ์ด๋ฆ„ ([๋งค๊ฐœ๋ณ€์ˆ˜ ์„ ์–ธ๋“ค..]){

    }

}

 

/*

๊ธฐ๋ก์šฉ ๋ธ”๋กœ๊ทธ ์ž…๋‹ˆ๋‹ค.

ํ‹€๋ฆฐ ๋ถ€๋ถ„์ด ์žˆ์œผ๋ฉด ๋Œ“๊ธ€๋กœ ๋‚จ๊ฒจ์ฃผ์„ธ์š”.

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค : )

*/