Formater, parse, MessageFormat, 콜렉션, 제네릭

2019. 3. 20. 19:08JAVA


-------------------------------Formater-------------------------------------


========SimpleDateFormat, DecimalFormat========

SimpleDateFormat

// 날짜 포맷팅 Date -> Text

String format(Date date)


DecimalFormat

// 숫자 포맷팅 Number -> Text

String format(int number)

String format(double number)


아래처럼 사용 가능하다.




     format                      format

--------------- --------------

|   | | |

|   v | v

Date 문자 숫자 문자

^   | ^ |

|   | | |

--------------- --------------

     parse              parse



============parse===========


parse는 입력값을 문자열로 바꾼것을 다시 입력값으로 바꿔준다.





============MessageFormat========


String배열의 값을 한번에 사용 할 수 있게 해주는것






위와 같은걸(Object .......) 가변길이 매개변수라 한다. 그리고 사용하게 되면 메소드가 계속적으로 쓸수있다.

예시 ) method("홍길동", new Integer(10), 30, 등등 계속)





=============java.time================


날짜를 출력 보다는 날짜끼리의 계산을 할때 주로 사용된다.

(jdk 1.8부터 생긴기능)







-----------------------------------콜렉션------------------------------------




           <배열과 콜랙션 비교>





인터페이스 분류


Collection (모든 자료구조 클래스가 만드시 구현해야 하는 기능 정의 (추상화)

-----------------------------------------------------------

List : Collection + 순서를 유지해야하는 클래스가 반드시 구현해야 하는 기능 정의 (추상화)

       순서에 맞게 저장하는게 중요하기때문 주로 사용함

(특징)

- 순서를 유지하고 저장

- 중복 저장 가능


(구현 클래스)

ArrayList(제일 많이 씀), Vector, LinkedList

-----------------------------------------------------------

Set : Collection + 중복을 허용하지 않는 클래스가 반드시 구현해야 되는 기능 정의 (추상화)

(특징)

- 순서를 유지하지 않고 저장

- 중복저장 안됨


(구현 클래스)

HashSet(중복값 넣으도 에러는 안나지만 값이 입력되지도 않음), TreeSet

-----------------------------------------------------------


Map -----------------------------------------------------------


(특징)

- 키와 값의 쌍으로 저장

- 키는 중복 저장 안 됨


(구현클래스)

HashMap, Hashtable, TreeMap, Properties

-----------------------------------------------------------


Collection의 주요 메소드

boolean .add(E e)

- 객체 저장

void .clear()

- 콜렉션에 저장된 모든 객체 삭제

boolean .contains(Object o)

- 지정된 객체를 콜렉션이 포한하고 있으면 true를 반환 (확인)

boolean .isEmpty()

- 콜렉션이 비어있으면 true를 반환

Iterator<E> .iterator()

- 콜렉션에 저장된 모든 객체를 순회할 수 있는 Iterator객체를 반환 (추출)

boolean remove(Object o)

- 지정된 객체를 콜렉션에서 삭제

int size()

- 콜렉션에 저장된 객체의 객수를 반환



List의 주요 메소드


void .add(int index, E e)

- 지정된 인덱스 위치에 객체 저장

E .get(int index)

- 지정된 인덱스 위치에 저장된 객체 반환

E remove(int index)

- 지정된 인덱스 위치에 저장된 객체를 삭제하고 반환

E set(int index, E e)

- 지정된 인덱스 위치에 저장된 객체를 새 객체로 교환하고 이전 객체 반환


ArrayList - 중간에 삭제하면 앞으로 하나씩 다 끌고옴


LinkedList - 기차처럼 하나씩 저장한 모습으로 중간에 삭제할경우 삭제한부분말고 앞뒤로 그냥 연결한다.

(주로 삭제할 경우 이LinkedList가 빠름)








==========기본자료형 입력 Wrapper =======


기본 자료형을 입력할려면 Wrapper(오토박싱, 오토언박싱)을 이용해야한다.


Integer x = 10; // 오토박싱 Integer x = new Integer(10);


Integer x = new Integer(30);

int y = x; // 오토언박싱 int y = x.intValue();













사용예제 )


------------------------------------제네릭-----------------------------------


제네릭이란

객체 생성 시점에 타입이 결정되는것


제네릭 표기법

public class ArrayList<T(아무거나 상관없음)> { // 제네릭 타입

void add(T o) {,,,,} // 설정한 타입으로 추가


T get(int i) {......} // 형변환을 할필요가 없다.

}


ArrayList<String> a = new ArrayList(); // ArrayList에 String으로만 입력됨

void add(String o) {.......} // String 으로 입력

String get(int i) {...........} // String 으로 출력


ArrayList<User> a = new ArrayList(); // ArrayList에 User으로만 입력됨

void add(User o) {.......} // User 로 입력

User get(int i) {........} // User 로 출력


담을 타입을 <> 안에 적는다.



사용 이유

1. 자료구조의 한종류의 값을 담기위해

2. 값을 꺼낼때 마다 불필요한 형변환을 하지않기 위해