์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 | 28 |
29 | 30 | 31 |
- ์ฌ๊ท
- ์๊ณ ๋ฆฌ์ฆ
- Deque
- ์๋ฎฌ๋ ์ด์
- ์ด๋ถํ์
- Java
- heapq
- ํ์ด์ฌ
- ๋ฐฑํธ๋ํน
- BOJ
- ์กฐํฉ
- 3์ฐจ์๋ฐฐ์ด
- Python
- ๋ฌธ์์ด
- bfs
- DP
- ๋ถ๋ถ์งํฉ
- ํ๋ก๊ทธ๋๋จธ์ค
- ํ๋ก์ด๋์์ฌ
- ์ ๋ ฌ
- HashMap
- ๋ถํ ์ ๋ณต
- ์๋๋ก์ด๋
- ๋ค์ต์คํธ๋ผ
- dfs
- ๋นํธ๋ง์คํน
- SQL
- ๊ตฌํ
- ๋ฐฐ๋ญ๋ฌธ์
- ๋ธ๋ฃจํธํฌ์ค
- Today
- Total
It's easy, if you try
[Java] ์ฝ๋ ๊ฐ์ ์ ์ํ Collection ์ฌ์ฉ ๋ณธ๋ฌธ
๐ ์ฝ๋ ๊ฐ์ ์ ์ํ Collection ์ฌ์ฉ
๋ชฉ์ฐจ
- Collection์ ์ฅ๋จ์
- ์ค์ต (1)
- ์ค์ต (2)
1. Collection์ ์ฅ๋จ์
์์ ๊ฐ์ด ํด๋์ค A์ B๊ฐ ์์ ๋, ๊ฐ๊ฒฐ์ฑ๊ณผ ๊ฐ๋ ์ฑ๋ฉด์์๋ B๊ฐ ์ฐ์ํฉ๋๋ค.
๊ทธ๋ฌ๋, ํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ด๋ ํจ์ ์คํ ์๋ ๋ฉด์์๋ A๊ฐ ๋ ์ฐ์ํฉ๋๋ค.
๐ ๋ฐ๋ผ์, ์ฅ/๋จ์ ์ด ์๊ธฐ ๋๋ฌธ์ ์ด๋ ๋ฐฉ์์ ์ ์ฉํ ์ง๋ ์๊ตฌ์ฌํญ, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋, ๊ฐ๋ ์ฑ, CPU ์ฐ์ฐ๋ ๋ฑ ๋ค๊ฐ๋๋ก ๊ณ ๋ คํด์ผํฉ๋๋ค.
2. ์ค์ต (1)
๐switch ~ case ~ ๋ฌธ์ ํตํด ์์ฑํ ํ์ฌ ๋ฌ์ ๋ ์ ์ถ๋ ฅ ํ๋ก๊ทธ๋จ์ Collection์ ์ฌ์ฉํด ๊ฐ์ ํด ๋ด ์๋ค.
๊ฐ์ ์
import java.util.*;
import java.text.SimpleDateFormat;
public class ์ฝ๋๊ฐ์ ์_์ํ_Collection_์ฌ์ฉ_์ค๋
{
public static void main(String[] args) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String date = sdf.format(new Date());
int year = Integer.parseInt(date.substring(0,4));
int month = Integer.parseInt(date.substring(5));
int day= 0;
switch(month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 12:
day = 31;
break;
case 4:
case 6:
case 9:
case 11:
day = 30;
break;
case 2:
day = (year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0 ? 29 : 28;
break;
}
System.out.println(day + " days for " + year + "-" + month);
}
}
๊ฐ์ ํ
import java.util.*;
import java.text.SimpleDateFormat;
public class ์ฝ๋๊ฐ์ ์_์ํ_Collection_์ฌ์ฉ_์ค๋
{
public static void main(String[] args) {
int[][] days = {{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},
{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM");
String date = sdf.format(new Date());
int year = Integer.parseInt(date.substring(0,4));
int month = Integer.parseInt(date.substring(5));
int idx = (year % 4) == 0 && (year % 100) != 0 || (year % 400) == 0 ? 0 : 1;
System.out.println(days[idx][month] + " days for " + year + "-" + month);
}
}
์ฝ๋๊ฐ ๊ฐ๊ฒฐํด์ง ๊ฒ์ ํ์ธ ํ ์ ์์ต๋๋ค.
3. ์ค์ต (2)
๐ ์๋๋ก์ด๋ ์ฝ๋์์ ์ธํ ํธ๋ก ๋ฐ์์จ mode ๊ฐ๊ณผ ํ๋ผ๋ฏธํฐ๋ก ๋์ด์ค๋ result์ ๋ฐ๋ผ ์ฒ๋ฆฌ๊ฐ ๋ฌ๋ผ์ง๋ ์ฝ๋๋ฅผ Collection์ ์ฌ์ฉํด ๊ฐ์ ํด ๋ด ์๋ค.
๊ฐ์ ์
์ค๋ณต ์ฝ๋๊ฐ ๋ง์ด ๋ณด์ด๊ณ , ์ง๊ด์ ์ด์ง ๋ชปํฉ๋๋ค.
public void returnResult(boolean result) {
String mode = getIntent().getExtras().getString("mode");
Intent intent = new Intent();
switch(mode) {
case "register": {
// setResult(resultCode, Intent)
setResult(1000, intent);
if (result) {
// intent.putExtra(name, value);
intent.putExtra("result", "true");
} else {
intent.putExtra("result", "false");
}
finish();
}
case "auth": {
setResult(4000, intent);
if (result) {
intent.putExtra("result","true");
} else {
intent.putExtra("result","true");
}
finish();
}
}
}
์ ์ฝ๋์์๋ mode์ ๋ฐ๋ผ resultCode๊ฐ ๋ฌ๋ผ์ง๊ณ ,
ํ๋ผ๋ฏธํฐ์ธ result ๊ฐ(boolean)์ ๋ฐ๋ผ value๊ฐ ๋ฌ๋ผ์ง๋๋ค. ์ด๋ฌํ ์ ๊ณผ Collection์ ํ์ฉํด ์ฝ๋๋ฅผ ๊ฐ์ ํด ๋ด ์๋ค!
๊ฐ์ ํ
public void returnResult(boolean result) {
Intent intent = new Intent();
String intentValue = result ? "true" : "false";
HashMap<String, Integer> resultCode = new HashMap<String, Integer>()
{{
// put(mode, resultCode)
put("register", 1000);
put("auth", 4000);
}};
setResult(resultCode.get(mode), intent);
intent.putExtra("result", intentValue);
finish();
}
HashMap์ ์ฌ์ฉํด mode๋ฅผ ํค ๊ฐ์ผ๋ก, resultCode๋ฅผ ๋ฐธ๋ฅ ๊ฐ์ผ๋ก ๊ฐ๋ ๊ตฌ์กฐ๋ฅผ ๋ง๋ค์์ต๋๋ค. resultCode.get(mode)
๋ฅผ ์ฌ์ฉํ๋ฉด ๋๊ธฐ ๋๋ฌธ์ switch๋ฌธ์ ์ฌ์ฉํ ํ์๊ฐ ์์ด์ก์ต๋๋ค!
๋ํ, ๊ฐ์ ์ ์ฝ๋์์๋ ํ๋ผ๋ฏธํฐ result์ ๋ฐ๋ผ value๊ฐ์ด ๋ฌ๋ผ์ก๊ธฐ ๋๋ฌธ์ ๋ฌผ์ํ ํจ์๋ฅผ ํตํด String ๊ฐ(intentValue)์ ์ด๊ธฐํํด๋์ด ๋ณ์๋ก ์ฌ์ฉํ์์ต๋๋ค. ์ด๋ก ์ธํด if ~ else ๋ฌธ์ ์ฌ์ฉํ ํ์๊ฐ ์์ด์ก์ต๋๋ค!
mode์ ์ข ๋ฅ๊ฐ ๋ง์์ง์๋ก ์ฝ๋์ ์์ ์ฒ์ฐจ๋ง๋ณ๋ก ์ฐจ์ด๊ฐ ๋๊ฒ ๋ ๊ฒ์ ๋๋ค.
์ ์ ํ Collection ์ฌ์ฉ์ ๋ง์ ๋ถ๊ธฐ ์ฒ๋ฆฌ๊ฐ ํ์ํ ๋ ์ ์ฉํ๊ฒ ์ฐ์ผ ๊ฒ ๊ฐ์ต๋๋ค.
'์ธ์ด > ์๋ฐ(Java)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] final ์ฌ์ฉ ๋ฐฉ๋ฒ ๊ฐ๋จ ์ ๋ฆฌ (static๊ณผ์ ์ฐจ์ด์ ) (0) | 2021.09.15 |
---|---|
[Java] HashMap Comparator ๋๋ค์ ์ ๋ ฌ (0) | 2021.07.06 |
[JAVA] Comparable vs Comparator (0) | 2021.02.21 |
[Java] ์์ด / ์กฐํฉ / ๋ถ๋ถ ์งํฉ ์ ๋ฆฌ (์๋ ์ฝ๋ - ์ฌ๊ทํธ) (0) | 2021.02.15 |
[JAVA] ์ธ์ด ๊ฐ์ - ํน์ง (0) | 2021.02.14 |