어떠한 웹페이지의 게시판에는 한페이지마다 10개의 글이 올수 있고 각 글에는 게시글 제목, 내용, 작성자가 있으며
페이지마다 총페이지수와 총 게시글수 그리고 검색어를 띄워준다고 했을 때 다음과 같이 클래스를 구성할 수 있다.
먼저 Board(게시판) 클래스가 다음과 같이 구성되어 있다면
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
32
33
|
package HashMap;
public class Board {
private String title;
private String contents;
private String writer;
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getContents() {
return contents;
}
public void setContents(String contents) {
this.contents = contents;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
}
|
cs |
HashMap 구조는 다음과 같이 작성되어야 할 것이다.
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
package HashMap;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
public class MapAndList {
public static void main(String[] args) {
//글 10개 담을 리스트 객체 생성
List<Board> list = new ArrayList<Board>();
// 객체를 10개 생성해서 리스트에 추가
for(int i=0; i<10; i++) {
Board vo = new Board();
vo.setTitle("제목" + i);
vo.setContents("내용"+i);
vo.setWriter("작성자"+i);
list.add(vo);
}
//map 객체 생성
Map<String, Object> map = new HashMap<String, Object>();
//목록추가
map.put("list", list);
//검색어추가
map.put("searchword", "검색어");
//총갯수 추가
map.put("totalcount", 100);
//총페이지수 추가
map.put("totalpage", 10);
System.out.println(map.get("list").getClass());
System.out.println(map.get("totalpage").getClass());
System.out.println(map.get("searchword").getClass());
View(map);
}
// map 객체를 매개변수로 받아서
// 총갯수 : 100개
// 총페이지수 : 10페이지
// 검색어 : 검색어
// 제목 0 내용0 작성자 0
// ...
// 제목9 내용9 작성자9
static void View(Map m) {
//출력
System.out.println("총갯수 : " +m.get("totalcount"));
System.out.println("총페이지 : "+m.get("totalpage"));
System.out.println("검색어 : "+m.get("searchword"));
ArrayList<Board> list = (ArrayList<Board>) m.get("list");
for(Board vo : list) {
System.out.println(vo.getTitle() + " " + vo.getContents() + " " + vo.getWriter());
}
}
}
|
cs |
(출력결과)
위에서 보이는 것처럼 key, value 저장구로를 가지면서
value에는 ArrayList, Integer, String 등 다양한 데이터 타입이 올 수 있다.
HashMap 중 key가 'list' 인 녀석의 value가 ArrayList 타입이기 때문에
10개 작성된 글을 이 ArrayList에 담아서 하나의 key, value에 넣을 수 있게 된다.
이외에도 자신이 커스터마이징한 클래스의 데이터타입 또한 value가 될 수 있다.
'Java' 카테고리의 다른 글
[Java] - MariaDB 연동이후 Java에서 SQL문 실행하기 (0) | 2020.09.29 |
---|---|
[Java] - Java에서 Maria DB연동하기 (0) | 2020.09.29 |
[Java] - Set 컬렉션 , Map 컬렉션 (0) | 2020.09.28 |
[Java] - iterator(반복자) : 인덱스로 접근할 수 없을 때 사용 (0) | 2020.09.28 |
[Java] - 객체비교 (eqauls)에 대해서 (0) | 2020.09.28 |