JavaScript Map vs Java HashMap
JavaScript: Map 기본 사용법
const userMap = new Map();
// 데이터 추가
userMap.set('name', '길동');
userMap.set('age', 19);
// 데이터 조회
userMap.get('name'); // '길동'
// 존재 확인 및 크기
userMap.has('name'); // true
userMap.size; // 2
Java: HashMap 기본 사용법
Java 차이점: Map -> 인터페이스, HashMap -> Map을 구현한 클래스 -> 세트
// 타입 지정 + 구현체 선택 -> Map 타입인데 HashMap으로 만들겠다
Map<String, Object> userMap = new HashMap<>();
HashMap<String, Object> userMap = new HashMap<>();
// 데이터 추가
userMap.put("name", "길동");
userMap.put("age", 19);
// 데이터 조회
userMap.get("name"); // "길동"
// 존재 확인 및 크기
userMap.containsKey("name"); // true
userMap.size(); // 2 (메서드 호출)
메서드 비교
| 기능 | JavaScript | Java |
|---|---|---|
| 추가 | set(key, value) |
put(key, value) |
| 조회 | get(key) |
get(key) |
| 존재 확인 | has(key) |
containsKey(key) |
| 크기 | size (프로퍼티) |
size() (메서드) |
반복문 비교
JavaScript: forEach 사용
const users = new Map();
users.set('user1', { name: '철수', age: 30 });
users.set('user2', { name: '영희', age: 25 });
users.forEach((value, key) => {
console.log(key, value);
});
Java: for-each 사용
Map<String, User> users = new HashMap<>();
users.put("user1", new User("철수", 30));
users.put("user2", new User("영희", 25));
for (String key : users.keySet()) {
System.out.println(key + ": " + users.get(key));
}
Spring Repository 패턴
public class StudentRepository {
// 필드: 클래스 안에 선언된 변수
// ⚛️ React -> useRef / useState처럼 호출마다 사라지지 않고 유지됨
private final Map<String, Student> studentMap = new HashMap<>();
public void save(Student student) {
studentMap.put(student.getName(), student);
}
}
save 함수 실행 과정
// 1. Repository 필드 선언 (컴포넌트 상태처럼 유지됨)
private final StudentRepository studentRepository;
// 2. Student 객체 생성 (저장할 실제 데이터)
Student student = new Student(
studentInfoDto.getName(),
studentInfoDto.getAge(),
studentInfoDto.getAddress()
);
// 3. Repository에 저장
studentRepository.save(student);
✅ 한 줄 정리:
JavaScript -> Map 하나로 끝
Java -------> Map: (설계도) + HashMap: (실제 구현체), <Key타입, Value타입> 필수
반응형
'메모같은기록' 카테고리의 다른 글
| VS Code + Spring Boot CRUD 만들어보기 (0) | 2026.02.17 |
|---|---|
| Spring Service DTO 실습: private final getter 정리 (0) | 2026.02.16 |
| Spring Service와 DTO 역할 (0) | 2026.02.16 |
| [React] html-react-parser (1) | 2024.09.20 |
| [React] clsx 라이브러리 (0) | 2024.09.19 |