map메서드(Java Stream API) ,map자료구조(Java Collections Framework)

CosmoNumb·2024년 8월 1일
0

java

목록 보기
12/24

1. map 메서드 (Java Stream API)

  • 정의: map 메서드는 자바 스트림 API의 중간 연산 중 하나입니다.
  • 역할: 스트림의 각 요소에 대해 주어진 함수를 적용하여 새로운 스트림을 생성합니다.
  • 사용 예시:
    List<String> names = Arrays.asList("John", "Jane", "Doe");
    List<Integer> nameLengths = names.stream()
        .map(String::length)
        .collect(Collectors.toList());
  • 설명:
    • names.stream()은 문자열의 스트림을 생성합니다.
    • map(String::length)는 각 문자열의 길이를 계산하여 새로운 스트림을 생성합니다.
    • collect(Collectors.toList())는 변환된 스트림의 요소들을 리스트로 수집합니다.

2. map 자료구조 (Java Collections Framework)

  • 정의: map 자료구조는 자바 컬렉션 프레임워크에서 제공하는 데이터 구조입니다.
  • 역할: 키-값 쌍으로 데이터를 저장하고 관리합니다.
  • 사용 예시:
    Map<String, Integer> map = new HashMap<>();
    map.put("John", 25);
    map.put("Jane", 22);
    map.put("Doe", 30);
    
    Integer age = map.get("John"); // 25
  • 설명:
    • HashMap<String, Integer>는 문자열을 키로, 정수를 값으로 저장하는 해시맵을 생성합니다.
    • map.put("John", 25)는 "John"을 키로, 25를 값으로 저장합니다.
    • map.get("John")은 "John" 키에 대응하는 값을 반환합니다.

차이점 요약

  • 컨텍스트:
    • map 메서드는 자바 스트림 API에서 사용됩니다.
    • map 자료구조는 자바 컬렉션 프레임워크에서 사용됩니다.
  • 역할:
    • map 메서드는 스트림의 각 요소를 변환하는 데 사용됩니다.
    • map 자료구조는 키-값 쌍으로 데이터를 저장하고 검색하는 데 사용됩니다.
  • 예시:
    • map 메서드: .map(String::length)는 문자열을 그 길이로 변환합니다.
    • map 자료구조: map.put("John", 25)는 "John"을 키로, 25를 값으로 저장합니다.

추가 예시: map 메서드와 map 자료구조의 사용

map 메서드 예시

List<String> fruits = Arrays.asList("apple", "banana", "cherry");
List<Integer> lengths = fruits.stream()
    .map(String::length)
    .collect(Collectors.toList());

System.out.println(lengths); // [5, 6, 6]

map 자료구조 예시

Map<String, String> countryCapitals = new HashMap<>();
countryCapitals.put("USA", "Washington D.C.");
countryCapitals.put("UK", "London");
countryCapitals.put("France", "Paris");

String capital = countryCapitals.get("USA");
System.out.println(capital); // Washington D.C.

이처럼 map 메서드와 map 자료구조는 이름은 같지만, 그 역할과 사용 방법은 다릅니다. map 메서드는 스트림의 각 요소를 변환하는 데 사용되며, map 자료구조는 키-값 쌍으로 데이터를 저장하고 검색하는 데 사용됩니다.

0개의 댓글