일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- JPA
- joinfetch
- JQuery
- paging
- 제네릭
- jQuery값전달
- fullcalendar
- javascriptcalendar
- springflow
- calendar
- values()
- JPQL
- Generic
- 벌크연산
- namedQuery
- LIST
- 페이징
- 프로젝트생성
- 스프링데이터흐름
- jQuery값전송
- Hibernate
- 페치조인
- 엔티티직접사용
- javaservlet
- 자바서블릿
- 대량쿼리
- jscalendar
- 제너릭
- fetchjoin
- jQueryUI
- Today
- Total
가자공부하러!
Java_7_컬렉션 프레임워크, java.util, Generic, Time 본문
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 ( 링크 )
> 중복 없음
> 순서 없음
> 자료구조 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 |