Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- StringBuffer vs StringBuilder
- R에서의 wordcloud
- 마르코프
- R dataframe
- StringJoiner
- 자언어처리모델
- R 워드클라우드
- 딥러닝용어
- 마르코프 체인
- 통계기반자연어처리
- deeplearning개념
- 딥러닝개념
- RNN Attention
- word2vec
- R에서의 워드클라우드
- r word2vec
- wordVector
- 어탠션
- deeplearning용어
- R TF-IDF
- WordCloud R
- R 키워드 가중치
- 도날드노만
- self-attention
- 상호작용디자인
- 자연어처리
- HashMap
- 언어모델
- 체험디자인
- selfattention
Archives
- Today
- Total
클로이의 데이터 여행기
[JAVA] 같은 key인 경우, value에 리스트(list)로 담기 본문
이번 메소드는 'HashMap에 key 단위로 value를 ArrayList로 담는 기능'을 수행한합니다.
key를 primary key로 삼아, 같은 key인 value(ex.키워드)을 ArrayList로 담습니다.
이번 내용부터는 변수설명보다는 코드를 어떻게 구성했는지 설명하고자 합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
public static HashMap<String, ArrayList<String>> joinDic(String[] arr) {
// ①
HashMap<String, ArrayList<String>> dic = new HashMap<String, ArrayList<String>>();
for ( int i=0;i<arr.length;i++) {
String[] line = arr[i].split(","); // ②
String key = line[5]; //③
ArrayList<String> list = new ArrayList<String>();
if (dic.containsKey(key)) { //⑤
list = dic.get(key); //⑤-1
list.add(line[13]);
}else {
list.add(line[13]); //⑤-2
}
dic.put(key,list); //⑥
}
for (String key : dic.keySet() ) { //⑦
System.out.println(key);
}
return dic;
}
|
cs |
프로세스는 다음과 같습니다:D
① dic 이라는 이름으로 hashmap을 선언
② arr에 담긴 데이터를 쉼표를 기준으로 split하여 변수 line에 담음
③ line에 담긴 내용 중 6번째 내용(line[5])를 변수 key에 담음
④ list 라는 이름으로 arraylist를 선언
⑤ key가 dic(hashmap)에 있는지 확인
⑤-1 있을 때는 list에 담겨있는 value 가져온 뒤, line의 12번째 내용(line[13])을 더함
⑤-2 없을 때는 list에 곧바로 line의 12번째 내용(line[13])을 더함
⑥ 변수 key를 dic의 key값으로 변수 list를 dic의 value값으로 더함
⑦ 정상적으로 hashmap에 들어갔는지 확인하기 위함 (*없어도 되는 부분)
이번 메소드를 작성하면서 가장 헷갈렸던 부분은 '⑤-1'이었습니다.
dic에서 value를 찾아오는 작업을 놓쳐 list가 계속 리셋되고 있던 문제가 있었습니다.
기존에 값(list)에 무언가를 더하고자(line[13]) 한다면,
기존의 값(list)을 찾아오는 코드(⑤-1)가 필요하다는 사실을 다시한번 배울 수 있었습니다!
'JAVA' 카테고리의 다른 글
[JAVA] 여러 파일(file)을 읽는 메서드(method) (0) | 2018.11.12 |
---|---|
[JAVA] eclipse 소소한 단축키 (2) | 2018.11.08 |
[JAVA] HashMap에 <키워드,개수>의 형태로 넣기 (1) | 2018.10.22 |
[JAVA] 결과를 텍스트 파일(txt file)로 쓰기 (0) | 2018.10.10 |
[JAVA] 텍스트 파일(txt file)을 한 라인(line)씩 읽기 (0) | 2018.10.10 |
Comments