๐ ๋ค์ด๊ฐ๋ฉฐ
์ด๋ฒ ๊ธ์์๋ ์ปฌ๋ ์
ํ๋ ์์ํฌ์ Set, ์์๋ฅผ ๋ถ์ฌํ๋ Iterator, ํค-๊ฐ ์์ธ HashMap, ํฅ์๋ for๋ฌธ forEach, ๊ทธ๋ฆฌ๊ณ ๋ ์ง ํด๋์ค DateยทCalendar๋ฅผ ์ ๋ฆฌํ๋ค.
1. Set โ ์ค๋ณต ์๋ ์งํฉ
HashSet: ์ค๋ณต ์์๋ฅผ ํฌํจํ ์ ์๊ณ , ์์๊ฐ ์๋ค. ๊ฐ์ ์ ๋ฌด ๊ฒ์ฌ์ ํนํ๋์ด ์์ผ๋ฉฐ, ํด์ ์ฝ๋๋ก ๊ฒ์ฌํด ์๋๊ฐ ์ข๋ค.
1
2
3
4
5
6
7
8
| HashSet<String> bloodTypeSet = new HashSet<>();
bloodTypeSet.add("A");
bloodTypeSet.add("B");
bloodTypeSet.add("O");
bloodTypeSet.add("AB");
bloodTypeSet.add("AB"); // ์ฌ๋ฌ ๋ฒ ๋ฃ์ด๋
bloodTypeSet.add("AB"); // ํ๋์ AB๋ก ์ทจ๊ธ
System.out.println(bloodTypeSet);
|
AB๋ฅผ ์ฌ๋ฌ ๋ฒ ๋ฃ์ด๋ ํ๋๋ง ์ ์ฅ๋๋ค. ๊ทธ๋ฐ๋ฐ ์ธ๋ฑ์ค๊ฐ ์๋๋ฐ ์ด๋ป๊ฒ ๊ฐ์ ๊บผ๋ผ๊น? ๋ต์ toString์ ์จ์ Iterator์ ์๋ค.
2. Iterator โ ์์ ๋ถ์ฌ
Iterator: ์์๊ฐ ์๋ ๊ฐ์ฒด์ ์์๋ฅผ ๋ถ์ฌํ๊ฑฐ๋, ์์ ๋ฐฉ์์ iterator์์ผ๋ก ๋ฐ๊ฟ ๋ ์ฌ์ฉ. hasNext()๋ก ๋ค์ ๊ฐ ์ ๋ฌด๋ฅผ ๊ฒ์ฌํ๊ณ next()๋ก ๊ฐ์ ๊บผ๋ธ๋ค.
1
2
3
4
| Iterator<String> iter = bloodTypeSet.iterator(); // Set์ ์์ ๋ถ์ฌ
while (iter.hasNext()) {
System.out.println(iter.next());
}
|
| ๋ฉ์๋ | ์ญํ |
|---|
iterator() | ์์๋ฅผ ๋ถ์ฌํ Iterator ๋ฐํ |
hasNext() | ๋ค์ ๊ฐ์ด ์๋์ง ๊ฒ์ฌ |
next() | ๋ค์ ๊ฐ์ ๊บผ๋ |
๐ก HashSet์ toString() ๋ด๋ถ์๋ Iterator<E> it = iterator();(this.iterator()์ ์๋ต)๊ฐ ์ฐ์ธ๋ค. ๊ทธ๋์ ์ธ๋ฑ์ค ์๋ Set๋ ์ถ๋ ฅํ ์ ์์๋ ๊ฒ์ด๋ค.
3. HashMap โ ํคยท๊ฐ ์
HashMap: Key-Value ํ ์์ผ๋ก ์ ์ฅํ๋ฉฐ ๊ฒ์์ด ๋ชฉ์ . Key๋ ์ค๋ณต ๋ถ๊ฐ(Set), Value๋ ์ค๋ณต ํ์ฉ. ๊ฐ์ Key๋ฅผ ๋ฃ์ผ๋ฉด Value๊ฐ ์ต์ ๊ฐ์ผ๋ก ๊ฐฑ์ ๋๋ค.
1
2
3
4
5
6
7
8
9
| HashMap<String, Integer> fruitMap = new HashMap<>();
fruitMap.put("์ฌ๊ณผ", 3000);
fruitMap.put("๋ฐฐ", 4000);
fruitMap.put("์๋ฐ", 8000);
fruitMap.put("์๋", 800);
System.out.println(fruitMap.size()); // 4 (ํ ์ = 1)
System.out.println(fruitMap); // {์ฌ๊ณผ=3000, ...}
System.out.println(fruitMap.get("๋ฐฐ")); // 4000 (ํค๋ก ๊ฐ ์กฐํ)
|
| ๋ฉ์๋ | ์ญํ |
|---|
put(k, v) | ํค-๊ฐ ์ ์ ์ฅ |
get(k) | ํค๋ก ๊ฐ ์กฐํ |
size() | ์์ ๊ฐ์ (8์ด ์๋๋ผ 4) |
keySet() | ํค๋ค๋ง Set์ผ๋ก |
values() | ๊ฐ๋ค๋ง |
ํค ๋ถ๋ฆฌ โ keySet()์ผ๋ก ํค๋ง ๋ฝ์ Iterator๋ก ์ํํ๋ค.
1
2
3
4
| Iterator<String> fruitName = fruitMap.keySet().iterator();
while (fruitName.hasNext()) {
System.out.println(fruitName.next());
}
|
4. forEach (ํฅ์๋ for๋ฌธ)
์ผ๋ฐ for๋ฌธ์ ์ด๊ธฐ์; ์กฐ๊ฑด์; ์ฆ๊ฐ์์ด์ง๋ง, ํฅ์๋ for๋ฌธ์ ์ฝ๋ก (:)์ผ๋ก ์ด์ด์ง๊ณ ๋ฐ๋ณต ํ์๋ฅผ ์์์ ์ ํ๋ค.
1
2
3
| for (์๋ฃํ ๋ณ์๋ช
: ๋ฐฐ์ด/์ปฌ๋ ์
) {
๋ฐ๋ณตํ ๋ฌธ์ฅ;
}
|
1
2
3
4
| String[] arData = {"์๋
", "ํ์ธ์"};
for (String data : arData) { // arData์ ๊ฐ์ด ํ๋์ฉ data๋ก
System.out.println(data);
}
|
2์ฐจ์ ๋ฐฐ์ด์ ์ด์ค์ผ๋ก ์ด๋ค. (๋ฐ๊นฅ์ ํ, ์์ชฝ์ ์ด)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| int[][] arrData = {
{10, 25, 30}, {11, 24, 35}, {12, 23, 40}, {13, 22, 45}, {14, 21, 50}
};
int num = 0;
for (int[] arData : arrData) { // ํ ๋จ์
num++;
int total = 0;
for (int data : arData) { // ๊ทธ ํ์ ์ด๋ค
total += data;
}
double avg = (double) total / arData.length;
avg = Double.parseDouble(String.format("%.2f", avg));
System.out.println(num + "๋ฒ ํ์ ์ด ์ : " + total + "์ ");
System.out.println(num + "๋ฒ ํ์ ํ๊ท : " + avg + "์ ");
}
|
HashMap์ ๊ฐ ํ๊ท ๋ forEach๋ก ๊ฐ๋จํ ๊ตฌํ๋ค.
1
2
3
4
5
6
7
| int sum = 0;
for (int data : fruitMap.values()) {
sum += data;
}
double avg = (double) sum / fruitMap.values().size();
avg = Double.parseDouble(String.format("%.2f", avg));
System.out.println(avg);
|
5. Date์ Calendar
Date
1
2
| Date today = new Date();
System.out.println(today); // ํ์ฌ ์๊ฐ (๊ฐ๋
์ฑ ๋ฎ์)
|
๊ฐ๋
์ฑ์ด ๋จ์ด์ ธ SimpleDateFormat์ผ๋ก ํฌ๋งทํ๋ค.
1
2
| SimpleDateFormat sdf = new SimpleDateFormat("yyyy๋
MM์ dd์ผ");
System.out.println(sdf.format(today));
|
Calendar
Calendar๋ ์ถ์ ํด๋์ค๋ผ new๋ฅผ ์ฐ์ง ์๋๋ค. ๋ฌ๋ ฅยท์๊ฐ์ ๊ฐ์ ์ธ์คํด์คํํ๋ฉด ์ ๋๊ณ ํ๋๋ง ์กด์ฌํด์ผ ํ๊ธฐ ๋๋ฌธ. ๋์ getInstance()๋ก ์ป๋๋ค.
1
2
3
4
5
6
| Calendar cal = Calendar.getInstance(); // new ๋์ getInstance()
cal.set(2021, 11, 04); // ์ฃผ์: 11 = 12์!
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
System.out.println(sdf.format(cal.getTime())); // Calendar โ Date ๋ณํ
System.out.println(cal.get(Calendar.MONTH) + 1); // ์๋ +1 ํ์
|
โ ๏ธ ์์ 0๋ถํฐ ์์ํ๋ค. 12์์ ๋ฃ์ผ๋ ค๋ฉด set(..., 11, ...), ์์ ๊บผ๋ผ ๋๋ +1์ ํด์ผ ํ๋ค. ๋ format()์๋ Date๋ง ๋ค์ด๊ฐ๋ฏ๋ก cal.getTime()์ผ๋ก Calendar๋ฅผ Date๋ก ๋ณํํ๋ค.
๐ ์ ๋ฆฌ
1
2
3
4
5
6
| Set ยท Iterator ยท HashMap ยท forEach ยท Date
โโ HashSet ์ค๋ณตX, ์์X (์ ๋ฌด ๊ฒ์ฌ ํนํ)
โโ Iterator ์์ ๋ถ์ฌ, hasNext()/next()
โโ HashMap Key(์ค๋ณตX)-Value(์ค๋ณตO), get์ผ๋ก ์กฐํ
โโ forEach for(ํ์
v : ์ปฌ๋ ์
) โ ๋ฐ๋ณต ์๋
โโ Date/Calendar SimpleDateFormat ํฌ๋งท, Calendar๋ ์ 0๋ถํฐ
|
| ๊ฐ๋
| ํ ์ค ์ ์ |
|---|
| HashSet | ์ค๋ณต ์๋ ์งํฉ |
| Iterator | ์์๋ฅผ ๋ถ์ฌํด ์ํ |
| HashMap | ํค-๊ฐ ์ ์ ์ฅยท๊ฒ์ |
| forEach | ์ฝ๋ก ๊ธฐ๋ฐ ํฅ์๋ for๋ฌธ |
| Calendar | ์ถ์ ํด๋์ค, getInstance()๋ก ์ฌ์ฉ(์ 0๋ถํฐ) |
SetยทMapยทIteratorยทforEach๋ ์๋ฐ ์ปฌ๋ ์
์ ๊ธฐ๋ณธ๊ธฐ๋ค. ํนํ HashMap์ Key๊ฐ Set(์ค๋ณต ๋ถ๊ฐ)์ด๋ผ๋ ์ , Calendar์ ์์ด 0๋ถํฐ๋ผ๋ ํจ์ ์ ๊ธฐ์ตํ๋ฉด ์ค์๋ฅผ ์ค์ผ ์ ์๋ค.
Comments powered by Disqus.