1 minute read

자바프로그래밍 - 6

  • 제네릭(generic)
  • Collection 인터페이스
  • Map 인터페이스



컬렉션 프레임워크 - 1. 제네릭(Generic)

  • 제네릭 프로그래밍?
    • 하나가 아닌, 여러 참조 자료형을 사용하도록 프로그래밍 하는 것
    • 여러 참조 자료형이 쓰일 곳에, 특정 자료형 지정 안한채로 정의

      이후, 클래스 사용할 때 실제 사용할 자료형 지정!

  • 제네릭 클래스 정의
    • ex. public class ClassName<T>
    • <T> = 제네릭 클래스
    • 각 메서드에서 해당 자료형 필요한 부분에 ‘T’문자 사용해서 구현
  • 참고!
용어 설명
ClassName<T> 제네릭 자료형, 매개변수화된 자료형
T 대입된 자료형
  • 제네릭 메서드
    • 매개변수화된 제네릭을, 선언부 or 매개변수로 사용한 메서드

genericMethod



컬렉션 프레임워크 - 2. 컬렉션 프레임워크

  • 컬렉션 프레임워크란,
    • 자바에 미리 구현하여 java.util 패키지에서 제공하는 자료구조

      자료구조 -> 프로그램 실행 중 메모리에 자료유지/관리를 위해 사용

    • Collection 인터페이스와 Map 인터페이스로 구성
  • 인터페이스
    • 자바 컬렉션 프레임워크 내 여러 인터페이스 정의되어 있음
    • 각 인터페이스의 특성과 활용법을 알면 개발 목적에 맞게 사용 가능
  • Collection 인터페이스
    • List 인터페이스: 순차 자료 관리

      순서 있음, 중복 허용

    • Set 인터페이스: 집합 자료 관리

      순서 무관, 중복 불가

  • Map 인터페이스
    • 한 쌍(key-value)으로 구성된 자료 관리에 유용
    • 검색용 자료구조

      key를 가지고, value 검색



컬렉션 프레임워크 - 3. List 인터페이스

  • ArrayList 클래스
    • 객체 배열을 구현한 클래스
    • ArrayList 사용을 위해선 import문 필요 (자동 생성됨?)

      import java.util.ArrayList

  • ArrayList와 Vector 클래스
    • 두 클래스 모두 배열을 구현한 클래스
    • 차이점은 ‘동기화(synchronization) 지원 여부’
      • 동기화: 두 개 이상의 ‘스레드’가 동시에 사용될 때 실행 순서를 정리(오류방지)
      • 스레드: ‘작업단위’를 의미, 메서드에서 프로그램을 실행하기 위해 생성
  • LinkedList 클래스
    • 자료변동(삽입, 삭제)가 많을 경우 사용



컬렉션 프레임워크 - 4. Set 인터페이스

  • 집합 자료 구조
    • 순서 상관없이, 중복 허용하지 않을 경우에 사용
  • Iterator
    • 순서가 없는 Set인터페이스에서는 get(i) 메서드 사용 불가..
    • ‘Iterator’를 통해 Collection의 모든 요소를 조회!
  • HashSet 클래스

    자료 중복 허용X, 출력 결과값 순서X

  • TreeSet 클래스
    • 자료 중복 허용X, 출력 결과값 정렬

      이진 트리(binary tree)를 사용해 정렬 구현



컬렉션 프레임워크 - 5. Map 인터페이스

  • 한 쌍(key-value)으로 이루어진 객체를 관리
    • key값은 유일
    • value값은 중복 가능
  • HashMap 클래스
    • key값이 정해지면, 해시 방식으로 자료 저장
  • TreeMap 클래스
    • key값에 의해 정렬






과제, ~5/27(금)까지 제출 (되도록 5/16(월)까지는 마무리하도록)

범위: 책 -> p.387~447(12단원) 까지

  1. 복습/연습문제
    • ‘1분 복습’, ‘연습 문제’의 문제&답, ‘타이핑’
    • ‘나혼자 코딩’, ‘타이핑, 디버그’

      제출파일: 이형록_220504_과제제출.txt

  2. 실습코드
    • 이클립스에 타이핑 (패키지, 클래스 동일하게)

      제출파일: 이형록_220504_실습코드.txt (이클립스에서 작성한 내용을 복사)

  3. 보충자료 확인



다음 강의 준비






nice!!!!

Updated: