가자공부하러!

Java_7_컬렉션 프레임워크, java.util, Generic, Time 본문

공부/Java

Java_7_컬렉션 프레임워크, java.util, Generic, Time

오피스엑소더스 2019. 5. 21. 15:40

1. 컬렉션 프레임워크

2. Generic

3. java.util


1. 컬렉션 프레임워크        -        실습코드



컬렉션 사용 방법     :    Collection Methods ( 링크 )


1. 컬렉션 프레임워크

  > java.util 패키지에 있는 자료구조 클래스들을 지칭.

- 자료구조란 ? : 자료를 저장할 수 있는 구조

  > Collection Interface

컬렉션 프레임워크에서 가장 기본이 되는 interface.

- Collection 인터페이스는 '여기에 자료가 있다' 라는 것을 표현.

- 중복 허용, 자료가 저장된 순서를 기억하지 못함.

- 대표적인 메소드는 add(), size(), iterator()

ㄴ 컬렉션은 자료의 저장 순서를 기억하지 않기 때문에 Iterator 인터페이스를 반환한다

ㄴ Iterator는 꺼낼 것이 있는지 없는지 살펴보는 hasNex()메소드와 자료를 하나씩 꺼내는 next()메소드를 갖는다

  > Set 

- Collection 인터페이스를 상속받는다

- 중복을 허용하지 않는 자료구조를 표현하는 인터페이스

- Set 인터페이스가 가지고 있는 add메소드는 같은 자료가 있으면 false, 없으면 true를 반환

  > List

- 핵심 : 순서가 있고 순서를 기억하는 자료구조

ㄴ get(int) 메소드를 통해 int번 째 자료를 꺼낼 수 있다.

- 속도 : 

ㄴ ArrayList :   조회 빠름    -    추가/삭제 느림

ㄴ LinkedList : 조회 느림    -    추가/삭제 빠름

- 빈 틈 없는 데이터 적재 가능

- Collection 인터페이스를 상속받는다


  > Map

- key와 value를 갖는 자료구조

- 원하는 값을 꺼낼 때는 key를 매개변수로 받는 get() 메소드를 이용하여 값을 꺼낸다.

- key는 중복을 허용하지 않는다.

- keySet() 메소드

ㄴ Map은 자신이 가지고 있는 모든 key들에 대한 정보를 읽어들일 수 있는 set을 갖는다

ㄴ keySet() 메소드는 set을 반환한다. 



2. Generic        -        실습코드


1. Generic 연습용 코드 작성        -        실습코드( Generic_exam1 )

  > Box class 작성 ( 가독성 확보를 위해 내부 클래스로 작성했음 )

  > Object 타입의 변수 저장이 가능한 현상을 확인

- Object를 받아들일 수 있다? == Object의 후손이면 무엇이든 받아들일 수 있다.


2. Generic을 이용하여 Box class 수정    -   실습코드( Generic_exam2 )

  > Box<E> 

- Box는 제네릭 특성을 활용하여 가상의 클래스 E를 사용한다는 의미

- Object를 받아들이고, 리턴하던 부분이 E로 변경됨.

ㄴ E는 실제로 존재하는 클래스가 아니에요 :D

      - Object, String, Integer 각 자료형 별 인스턴스가 잘 생성되었는지 확인


3, Generic을 사용하는 대표적인 클래스는 컬렉션 프레임워크와 관련된 클래스입니다.



3. java.util         -        실습코드



컬렉션 사용 방법     :    Collection Methods ( 링크 )


1. Set

  > 중복 없음

  > 순서 없음

  > 자료구조 HashSet과 TreeSet이 있다.


2. List

  > 중복 있을 수 있음

  > 순서 있음

  > 길이 정해져있지 않으므로 계속 추가 삭제 가능


3. Map

  > key와 value를 한 쌍으로 저장하는 자료구조

- key-value 한 쌍이 .size()에서 1로 표현됨

  > key 값은 중복 불가

- 새로 저장 하려는 key2가 이미 존재한다면 이전 key1의 value1값이 value2로 변경됨.

( key1 == key2, value1 != value2 )



4. Time         -        실습코드


1. Date 

  > 날짜와 시간을 구하기 위한 클래스

  > Date 클래스는 지역화에 대한 부분이 고려되지 않았다.

- 지역화란? : 지역에 따라 시간, 통화, 언어 등에 대하여 고려하는 프로그래밍

  > Date 클래스를 보면 대부분의 생성자와 메소드가 Deprecated 되어 있다.

- Deprecated : 앞으로 지원을 안하거나 문제가 있을수 있으니 사용하지 말라는 뜻

  > 기본 생성자로 Date 인스턴스를 생성하면 해당 인스턴스는 현재 시간과 날짜 정보를 가짐.

  > 현재 년, 월, 일, 시, 분, 초를 얻을 수 있다

- 현재 시간을 long 타입 변수에 저장할 수 있다.


2. Calendar

  > Date의 단점을 해결하고 등장 : 지역화?

  > Calendar 클래스 생성 방법

- Calendar가 가지고 있는 클래스 메소드 getInstance()를 사용해야 한다.

- getInstance() 메소드를 호출하면 내부적으로 java.util.GregorianCalendar 인스턴스를 만들어서 리턴한다.

- GregorianCalendar는 Calendar의 자식 클래스이다.

  > Calendar 클래스를 이용해서 현재 날짜와 시간에 대한 정보를 알아내는 방법


3. Time 

  > Java 8 부터 도입

  > 원하는 시간으로 time 객체를 생성할 수 있다.

  > 시간 정보를 보다 쉽게 사용할 수 있다.






참고 문서 : 프로그래머스, 프로그래밍 강의, 자바 중급 ( https://programmers.co.kr/learn/courses/9 )






















'공부 > Java' 카테고리의 다른 글

Java_9_List.class ( 자바 클래스 복붙 )  (0) 2019.05.23
Java_8_Collection Methods  (0) 2019.05.21
Java_6_Object클래스, java.lang 패키지  (0) 2019.05.21
Java_5_람다식(Lambda Expressions)  (0) 2019.05.17
Java_4_Stream(스트림)  (0) 2019.05.17
Comments