My footsteps

SimpleDateFormat,컬렉션 프레임웍 본문

예습/이론

SimpleDateFormat,컬렉션 프레임웍

밀김 2023. 1. 23. 10:24
728x90

 

 

 

 

- SimpleDateFormat : 날짜와 시간을 다양한 형식으로 출력할수있게해줌

 

 

 

 

 

 

 

 

 

 

 

 

- 컬렉션 : 여러 객체(데이터)를 모아놓은것 / 프레임웍 : 표준화, 정형화된 체계적인 프로그래밍 방식(=정해져있는 프로그래밍 방식) ▶ 컬렉션 프레임웍 : 다수의 객체(컬렉션)을 다루기 위한 표준화된 프로그래밍 방식

 

 

- 컬렉션 클래스 : 다수의 데이터를 저장할수 있는 클래스

 

 

 

컬렉션 프레임웍의 핵심 인터페이스들

- Map 에서 키값은 아이디, 값은 비밀번호라고 생각하면 이해하기 쉽다.(아이디 중복 x)

 

- List와 Set에서 공통부분을 뽑아서 ▶컬렉션이란걸 만든것. (Map은 키와,벨류값이 이미 있어서 포함 x)

 

 

 

 

 

 

 

 

 

 

 

set인터페이스는 컬렉션인터페이스와 매서드가 동일함. 단, 집합 관련 매서드 존재

 

 

 

 

 

 

 

 

- 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. 더블리 써큘러 링크드 리스트 : 첫번째 객체와 마지막 객체를 연결해놓은것. 시작에서 끝까지 갈수있음

 

 

 

 

 

 

 

큐는 맛집 줄서기와 비슷하다~~~

 

 

- 스택은 배열에 적합, 큐는 링크드리스트에 적합

 

 

 

스택매서드 // peek는 맨위에 뭐가 있는지 보는거라고 이해하면 쉽다

 

 

 

큐 매서드// boolean add와 object remove는 예외가 발생하고 offer과 poll은 예외발생x. 같은 추가삭제여도 차이가 있다

 

 

 

 

- 큐는 인터페이스라서 객체 생성이 안됨(스택은 가능) 그래서 큐를 구현한 클래스를 사용해야함

 

 

 

 

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)
		}
	}
}

 

 

 

- 스택의 활용 : 수식계산, 웹브라우저의 뒤로/앞으로

 

- 큐의 활용 : 최근사용문서, 인쇄작업 대기목록

 

 

 

 

 

 

 

 

728x90