반응형
컬렉션 프레임웍 - List, Set, Map
1. 컬렉션 프레임웍이란? '데이터 군을 저장하는 클래스들을 표준화한 설계'를 뜻한다. 컬렉션은 다수의 데이터, 데이터 그룹을 뜻하고 프레임 웍은 표준화된 프로그래밍 방식을 말한다. 다수의 데이터를 다루는데 필요한 다양하고 풍부한 클래스들을 제공한다. 데이터 정리할 때 쓰임이 있는 클래스들의 모음집이라 이해하자.
2. 컬렉션 프레임웍에서는 컬렉션데이터 그룹을 크게 3가지 타입이 존재한다고 인식하고 각 컬렉션을 다루는데 필요한 기능을 가진 3개의 인터페이스를 정의하였다.
★ Map - key & Value 쌍으로 이루어진 데이터의 집합
① List - 순서가 있는 데이터의 집합. 중복을 허용한다.
② Set - 순서를 유지하지 않는 데이터의 집합, 데이터의 중복을 허용하지 않는다.
③ Map - 키(key)와 값(value)의 쌍으로 이루어진 데이터 집합, 순서는 허용되지 않으며, 키는 중복 x , 값은 중복 o.
팀프로젝트 HashMap 사용
팀 프로젝트 게시판 만들기에서 HashMap을 사용하여 카테고리 ID에 문자열을 저장했다.
<dl>
<%
// 카테고리 ID와 문자열 매핑을 위한 맵 생성
Map<Integer, String> categoryMap = new HashMap<>();
categoryMap.put(1, "전체");
categoryMap.put(2, "반려소식");
categoryMap.put(3, "반려일상");
categoryMap.put(4, "반려질문");
categoryMap.put(5, "펫과사전");
categoryMap.put(6, "육아꿀팁");
categoryMap.put(7, "기타");
// 요청 속성에서 comuDTO 객체 가져오기
ComuDTO comuDTO = (ComuDTO) request.getAttribute("comuDTO");
// comuDTO 객체가 null이 아닌 경우에만 카테고리 ID에 해당하는 문자열 값 가져오기
String categoryName = "";
if (comuDTO != null) {
int categoryId = comuDTO.getPost_ctgr_id();
categoryName = categoryMap.get(categoryId);
}
%>
<dl>
<dt>카테고리</dt>
<dd><%= categoryName %></dd>
</dl>
</dl>
결과
HashMap 예제
import java.util.HashMap;
import java.util.Scanner;
public class Ex11_16 {
public static void main(String[] args) {
HashMap<String, String> map = new HashMap();
map.put("MyId", "1234");
map.put("TEST", "1234");
map.put("TEST", "2345"); // 이미 존재하는 KEY 추가 가능. 기존 값은 사라짐.
Scanner sc = new Scanner(System.in);
while(true) {
System.out.println("id와 password를 입력해주세요.");
System.out.print("id : ");
String id = sc.nextLine().trim();
System.out.println("pwd : ");
String pwd = sc.nextLine().trim();
System.out.println();
if(!map.containsKey(id)) {
System.out.println("입력하신 id는 존재하지 않습니다. 다시 입력해주세요.");
continue;
}
if(!(map.get(id)).equals(pwd)){
System.out.println("비밀번호가 일치하지 않습니다. 다시 입력해주세요.");
}else {
System.out.println("id와 비밀번호가 일치합니다.");
break;
}
}
}
}
결과
List와 Map을 많이 사용하는 것 같다.
반응형
'Java' 카테고리의 다른 글
[Java] 생성자(Constructor)란 무엇인가? (0) | 2023.08.01 |
---|---|
[Java] Calendar 클래스, getInstance() 메서드 (0) | 2023.07.11 |
Object 클래스의 메서드 - equals(), hashCode() (2) | 2023.06.07 |
Java 캡슐화와 접근 제어자(게터와 세터) (0) | 2023.04.24 |
HashMap 개념 및 예제 (2) | 2023.04.21 |