๐ท๐ผ๋ชจ์ฌ๋ด์ ๊ฐ๋ฐ์์ฒ๐ท๐ผ
[์ฑ๋ฅ๊ฐ์ ์ ์ํ ํ] JAVA ์ด์ค for๋ฌธ ์ฑ๋ฅ๊ฐ์ ๋ฐฉ๋ฒ ๋ณธ๋ฌธ
[์ฑ๋ฅ๊ฐ์ ์ ์ํ ํ] JAVA ์ด์ค for๋ฌธ ์ฑ๋ฅ๊ฐ์ ๋ฐฉ๋ฒ
์์ผ์ด 2021. 7. 26. 14:44๊ฐ๋ฐ์ ํ๋ฉด์ ๋ถ๋์ด ํ๊ฒ JAVA์์ ์ด์ค for๋ฌธ์ ์ฌ์ฉํ๊ฒ ๋๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
๊ทธ๋ฐ๋ฐ ์ด์ค for๋ฌธ์ ๋ฐ์ดํฐ๊ฐ ๋ง์ผ๋ฉด ๋ง์ ์๋ก ๋๋ ค์ง๋๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ ํ๋ ์ ์ํ๊ฒ ์ต๋๋ค.
- ์๋ ์ฝ๋
// ๋ ์ง๋ฅผ ๋ด์ List
for(int i=0; i<keyWordDayList.size(); i++) {
// i ๋ฒ์งธ์ ๋ ์ง ๊ฐ์ ๊บผ๋ธ๋ค.
String writeDt = keyWordDayList.get(i).get("writeDt").toString();
// ์์ธ ์ ๋ณด List
for(int k=0; k<keyWordDetailList.size(); k++) {
String kwNmTmp = keyWordDetailList.get(k).get("kwNm").toString();
String writeDtTmp = keyWordDetailList.get(k).get("writeDt").toString();
String kwCount = keyWordDetailList.get(k).get("kwCount").toString();
// i๋ฒ์งธ์ ๋ ์ง๊ฐ๊ณผ ์์ธ์ ๋ณด List์ ๋ ์ง๊ฐ์ด ๊ฐ์ผ๋ฉด
if(writeDt.equals(writeDtTmp)) {
// ๋ ์ง๋ฅผ ๋ด์ List์ i๋ฒ์งธ์ ์ถ๊ฐํ๋ค.
keyWordDayList.get(i).put(kwNmTmp, kwCount);
}
}
}
๋ ์ง๋ฅผ ๋ด์ List size() * ์์ธ ์ ๋ณด List size() ๋ฒ Loop๋ฅผ ๋๊ฒ๋๋๋ฐ
์) 50 * 100 = 5000๋ฒ
์ด๋งํผ ๊ณ์ฐ์ ํ๋ค๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ ์ ์๊ฒ๋ ๋๋ฌด ๋นํจ์จ์ ์ผ๋ก ๋๊ปด์ก์ต๋๋ค.
์๊ฐ์ ์ฌ๋ดค๋๋ 31769ms ์ ๋์ ์๊ฐ์ด ๊ฑธ๋ ธ๊ณ ์ด๋ 31์ด์ ๋์ ์๊ฐ์ด ์์(๋ณ๋ก ์๊ฑธ๋ฆฐ๋ค ์๊ฐํ๊ฒ ์ง๋ง ์ฌ์ฉ์ ์ ์ฅ์์๋ 5์ด์ด์์ ๋๋ฌด ๊ธธ๋ค๊ณ ๋๊ปด์ง๋๋ค)๋์์ต๋๋ค.
๊ทธ๋์ ์ ๋ ์ด๋ฅผ ๊ฐ์ ํด์ผ๊ฒ ๋ค๊ณ ์๊ฐ์ด ๋ค์์ต๋๋ค.
- ๊ฐ์ ์ฝ๋
HashMap<String, Object> list = new HashMap<String, Object>();
// ๋ ์ง List์ ๋ ์ง์ ํด๋น ์ธ๋ฑ์ค๋ฅผ HashMap์ ์ ์ฅ
for(int i=0; i<keyWordDayList.size(); i++) {
list.put(keyWordDayList.get(i).get("writeDt").toString(), i);
}
//์์ธ์ ๋ณด List
for(int k=0; k<keyWordDetailList.size(); k++) {
String kwNmTmp = keyWordDetailList.get(k).get("kwNm").toString();
String writeDtTmp = keyWordDetailList.get(k).get("writeDt").toString();
String kwCount = keyWordDetailList.get(k).get("kwCount").toString();
// ์์ธ์ ๋ณด List์ ๋ ์ง์ ๋ณด๋ก HashMap์์ ์ธ๋ฑ์ค๋ฅผ ๊บผ๋ด ์ ์ฅ
keyWordDayList.get((int) list.get(writeDtTmp)).put(kwNmTmp, kwCount);
}
HashMap์ ๋ฏธ๋ฆฌ ์ธ๋ฑ์ค๋ฅผ ์ ์ฅํด ๋๊ณ
๋น๊ตํ์ง์๊ณ ์์ธ์ ๋ณด ์กฐํ Loop๋ฅผ ๋๋ ๋ฐ๋ก๋ฐ๋ก ์ ์ฅํ๋ ๋ฐฉ๋ฒ ์ ๋๋ค.
์ด๋ 55ms ์ ๋์ ์๊ฐ์ด ๊ฑธ๋ ธ์ผ๋ฉฐ, 31,714ms ์ ์๊ฐ์ ์ค์์ต๋๋ค. (55ms๋ 1์ด๋ ์๊ฑธ๋ฆผ)
๊ธ์ฐ๋ ์์จ๊ฐ ์์ผ๋ ์ต๋ํ ์ด์ฌํ ์ธ์ธํ๊ฒ ์ ์์ต๋๋ค.
ํด๋ฆฐ ์ฝ๋ฉ์ ์ํด ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.