울음참고 개발공부
article thumbnail
Published 2023. 7. 12. 11:07
Apache Commons Collections - CamelKeyMap TIL
728x90

 

 

CamelKeyMap 

 

: Apache Commons Collections 라이브러리에서 제공하는 클래스

키(Key) 를 캐멀 케이스(CamleCase) 형식으로 저자하고 검색할 수 있는 Map(Map)의 구현체

 

 

 

주요 특징

 

1. 키 변환

  • 키를 캐멀 케이스 형식으로 병환하여 저장

 

2. 키 대소문자 무시

  • 키를 대소문자를 무시하고 검색

 

3. 기존 맵과의 상호 운용성

  • 내부적으로  LinkedHashMap을 사용항여 데이터를 저장

 

 

 

예시

 

  • 생성과 데이터 추가
CamelKeyMap<String, Integer> map = new CamelKeyMap<>();
map.put("firstName", 1);
map.put("lastName", 2);

 

  • 데이터 접근
Integer value = map.get("firstName");  // 1

 

  • 데이터 순회
for (String key : map.keySet()) {
    Integer value = map.get(key);
    // 데이터 처리 로직
}

 

  • 데이터 삭제
map.remove("lastName");

 

 

 

 


 

 

 

List<CamelKeyMap>

 

 

CamelKeyMap 객체들을 원소로 가지는 리스트

 

List<CamelKeyMap> 은 여러 개의 CamelKeyMap 객체를 순서대로 저장할 수 있음각 CamelKeyMap 객체는 순서가 있는 맵으로, 키-값 쌍을 유지하면서 원하는 순서로 데이터를 저장하고 검색할 수 있음

 

 

import org.apache.commons.collections4.map.CamelCaseMap;

public class CamelKeyMapListExample {
    public static void main(String[] args) {
        List<CamelCaseMap<String, Integer>> listOfMaps = new ArrayList<>();

        // 첫 번째 CamelKeyMap 객체 생성
        CamelCaseMap<String, Integer> map1 = new CamelCaseMap<>();
        map1.put("firstName", 1);
        map1.put("lastName", 2);

        // 리스트에 첫 번째 CamelKeyMap 객체 추가
        listOfMaps.add(map1);

        // 두 번째 CamelKeyMap 객체 생성
        CamelCaseMap<String, Integer> map2 = new CamelCaseMap<>();
        map2.put("age", 30);
        map2.put("salary", 5000);

        // 리스트에 두 번째 CamelKeyMap 객체 추가
        listOfMaps.add(map2);

        // 리스트의 각 CamelKeyMap 객체에서 키와 값을 출력
        for (CamelCaseMap<String, Integer> map : listOfMaps) {
            System.out.println("Map Contents:");
            for (String key : map.keySet()) {
                Integer value = map.get(key);
                System.out.println(key + ": " + value);
            }
            System.out.println();
        }
    }
}
Map Contents:
firstName: 1
lastName: 2

Map Contents:
age: 30
salary: 5000

 

728x90
profile

울음참고 개발공부

@메각이

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!