AI교육과정 - Java.8

단비·2022년 10월 6일
0

AI교육과정

목록 보기
8/69
  • 제네릭(Generic)
    • 클래스나 메소드에서 사용할 데이터의 타입을 컴파일 시 미리 지정하는 방법
  • 제네릭을 사용하는 이유
    • 다양한 타입의 객체의 재사용을 높일 수 있음.
    • 클래스에서 사용할 타입을 외부에서 설정
    • 반복적인 코드, 불필요한 코드를 사용하지 않도록 함
    • 강제적인 형 변환을 발생시키지 않음.
  • Object 클래스
    • 자바의 모든 클래스의 최상위 조상 클래스

    • 모든 타입은 Object 클래스 객체화 시킬 수 있음

    • 기본 데이터타입을 객체화 시킨 래퍼타입으로 대입 받을 수 있음

      Box<Integer> box1 = new Box2();
      box1.sum(10,20);
      Box2<double> box2 = new Box2();
      box2.sum(10.5, 20.5)
      
      public class Box2<T>[
      			private T num1;
      			private T num2;
      			pubic Integer sum((Integer num1, Intege num2)
      					return num 
      
    1. : Type
    2. : Element
    3. : Key
    4. : Value
    5. : Number
  • 컬렉션 프레임워크
    • 여러가지 데이터를 메모리해 쉽고 효과적으로 처리할 수 있도록 제공하는 클래스들의 집합
    • 자료구조를 구현한 클래스들의 모음
    1. 자료구조
      • 데이터를 효율적으로 관리할 수 있는 데이터 구조를 의미
      • 데이터의 특성에 따라 체계적으로 구조함
    2. 알고리즘
      • 어떤 문제를 풀기 위한 절차 및 방법
      • 어떤 문제에 대해 입력을 넣으면 원하는 출력을 얻을 수 있도록 만드는 프로그램
  • 인터페이스
    • 동기식 비동기식예시
      • 동기식
        • 프로그램을 차례대로 출력;
      • 비동기식
        • 여러개의 프로그램을 동시에 처리, 시간이 오래걸리면 다음 문장으로 이동 후 동작하는 방식
    • list 인터페이스
      • 순서가 있는 데이터들의 집합으로 데이터의 중복을 허용
        1. Vector

          • 동적인 길이로 여러 데이터형을 저장하기 위해 사용
          • 자바 1.0부터 존재하는 레거시 클래스
          • 배열과 동일하게 정수 인덱스를 사용하여 엑세스 할 수 있음
          • 동기화되어 있으며 한번에 하나의 스레드만 벡터의 메소드를 호출할 수 있음
        2. ArrayList

          • 동적인 길이로 여러 데이터형을 저장하기 위해 사용
          • 배열과 동일하게 정수 인덱스를 이용하여 엑세스할 수 있음
          • 비동기식을 사용하며 멀티 스레드를 지원(벡터와 차이점)

          🎃 Iterator 인터페이스

          • 컬렉션 프레임워크 인터페이스에서는 Iterator 인터페이스를 구현한 클래스의 인스턴스를 반환하는 iterator() 메소드를 정의하여 각 요소에 접근하도록 설계
          • 자바의 컬렉션에 저장되어 있는 요소들을 읽어오는 방법
          • 컬렉션으로부터 정보를 얻어내는 방법
            • Iterator의 장단점
            • 장점
              • 컬렉션 프레임워크 종류에 관계없이 일관성 있게 프로그래밍을 할 수 있음
            • 단점
              • size 메소드를 얻어와서 반복처리하는 것보다 속도가 느림
        3. Queue

          • FIFO(First in First Out)
          • 클래스가 따로 없어서 LinkedList()로 생성, Queue는 클래스가 아닌 인터페이스
          • 큐의 한쪽 끝을 프론트로 정하여 삭제 연산만 수행
          • 다른 한쪽 끝을 리어로 정하여 삽입 연산만 수행함
          • 푸시메시지, 운영체제의 스케쥴러
        4. Stack

          • LIFO (Last Input First Out)
          • 한 쪽 끝에서만 자료를 넣고 뺄 수 있는 형식의 자료구조
          • 브라우저의 뒤로가기 앞으로가기
        5. LinkedList

          • 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식
          • ArrayList에 비해 데이터의 추가나 삭제가 빠름
          • 인덱스가 없기 때문에 특정 요소에 접근이 느림
          • 탐색속도가 떨어짐
    • set 인터페이스
      • 순서가 없는 데이터 집합으로 데이터의 중복을 허용하지 않음
      1. HashSet
        • 데이터를 중복해서 저장할 수 없음(중복은 자동으로 제거)
        • 저장 순서가 유지되지 않음
        • 정렬을 하지 않음
        • 하나의 null 값을 저장할 수 있음
      2. TreeSet
        • 데이터를 중복해서 저장할 수 없음(중복은 자동으로 제거)
        • 저장 순서가 유지되지 않음
        • 오름차순으로 정렬
        • 하나의 null 값을 저장할 수 있음
        • 이진 탐색 트리 구조로 이루어져 있음
        • 이진 탐색 트리
          • 추가, 삭제에는 시간이 걸리지만 정렬, 검색에 높은 성능을 자랑하는 자료구조
    • Map 인터페이스
      • 키와 값을 한 쌍으로 이루어지는 데이터의 집합으로 순서가 없고, 키는 중복으로 허용하지 않지만 값은 중복을 허용
      1. HashMap
      2. TreeMap
      3. HashTable
profile
tistory로 이전! https://sweet-rain-kim.tistory.com/

0개의 댓글