SimpleDateFormat,컬렉션 프레임웍
- SimpleDateFormat : 날짜와 시간을 다양한 형식으로 출력할수있게해줌
- 컬렉션 : 여러 객체(데이터)를 모아놓은것 / 프레임웍 : 표준화, 정형화된 체계적인 프로그래밍 방식(=정해져있는 프로그래밍 방식) ▶ 컬렉션 프레임웍 : 다수의 객체(컬렉션)을 다루기 위한 표준화된 프로그래밍 방식
- 컬렉션 클래스 : 다수의 데이터를 저장할수 있는 클래스
- Map 에서 키값은 아이디, 값은 비밀번호라고 생각하면 이해하기 쉽다.(아이디 중복 x)
- List와 Set에서 공통부분을 뽑아서 ▶컬렉션이란걸 만든것. (Map은 키와,벨류값이 이미 있어서 포함 x)
- Map인터페이스에서 키key와 값value 를 합쳐서 Entry 라고 칭한다
- ArrayList : 리스트 인터페이스를 구현하므로, 저장순서가 유지되고 중복도 허용한다. 데이터의 저장공간으로 배열을 사용
- ArrayList 매서드 종류 ..4분 부터
https://youtu.be/_2e-cgwMOyc?t=244
- ArrayList에 저장된 마지막 객체부터 삭제하면 배열 복사가 발생하지 않아서 남는 객체 없이 완전삭제가 가능하다
(중간것만 삭제시 위 캡쳐처럼 구현)
for(int i = list.size()-1; i>=0; i--)
list.remove(i);
- LinkedList : 배열의 단점을 보완한것. 배열과 달리 불연속적으로 존재하는 데이터를 연결해준다
(배열인데 뭔가를 계속 추가하거나 삭제해야될때 링크드리스트를 쓰면 됨)
- LinkedList 이중 연결 리스트 종류
1. 링크드 리스트 : 바로 다음 객체를 가리키는 리스트. 접근성이 나쁘다
2. 더블리 링크드 리스트 : 1을 보완하기 위해 나온것. 왼쪽 오른쪽 객체끼리는 서로 연결이 되있다. 접근성 향샹
3. 더블리 써큘러 링크드 리스트 : 첫번째 객체와 마지막 객체를 연결해놓은것. 시작에서 끝까지 갈수있음
- 스택은 배열에 적합, 큐는 링크드리스트에 적합
- 큐는 인터페이스라서 객체 생성이 안됨(스택은 가능) 그래서 큐를 구현한 클래스를 사용해야함
import java.util.*;
class Ex11_2 {
public static void main(String[] args) {
Stack st = new Stack();
Queue q = new LinkedList(); //큐를 구현한 를래스 링크드리스트를 사용한것. 큐 구현한 클래스가 뭐가 있는지
//알고싶으면, java api 문서에서 찾으면 된다
st.push("0");
st.push("1");
st.push("2");
q.offer("0");
q.offer("1");
q.offer("2");
System.out.println("= Stack =");
while(!st.empty()) { //스택이 비어있지 않으면
System.out.println(st.pop()); //요소 하나씩 꺼낸다(pop)
}
System.out.println("= Queue =");
while(!q.isEmpty()) { //큐가 비어있지 않으면
System.out.println(q.poll()); //요소 하나씩 꺼낸다(poll)
}
}
}
- 스택의 활용 : 수식계산, 웹브라우저의 뒤로/앞으로
- 큐의 활용 : 최근사용문서, 인쇄작업 대기목록