벌써 자바 스프링부트로 시작하는 웹 프로그래밍 강의가 막바지로 들어서고있다.
처음 강의를 들었을 때는 8주면 2달 남짓이니 시간 여유가 있겠구나 싶었는데 매주차 강의를 듣고
강의 후기를 작성하다보니 시간이 금방 흐른 거 같다.
6주차에는 저번 주차에 이어서 자료구조에 대해서 배우고있다.
자료구조란 컴퓨터과학에서 효과적으로 데이터를 수정하고 접근하게끔 자료를 구성하고 관리, 저장하는 것을 말한다.
즉 자료 구조는 데이터들 간의 관계, 데이터값의 모음, 데이터에 쓸 수 있는 명령이나 함수같은 것들을 말하는 것이다.
어떻게 더 효율적으로 데이터를 관리하는지 알고리즘적으로 여러 연산구조를 풀어낸 것이라고 할 수 있을 것이다.
그 중 6주차에서 배우는 것 중 배열이있다.
이미 앞의 강의에서 배열에 대해서 배웠지만 arraylist 라는 다른 특징을 가지는 배열이있다.
정보처리기사 자격증을 공부하면서 웬 배열 관련된 게 왜이리 많나 싶었다..
Arraylist, linkedlist 등등.. 각 배열마다 배열속에 넣은 데이터를 꺼내고 삭제하고 추가하고 여러 구조가 달리 되어 있어서 여러가지 배열을 알아야 각각 쓰임새마다 적재적소에 쓰일 수 있을 것이다.
Java에서 스택영역과 힙영역이 있다는 걸 배웠다.
자바에 있는 8가지 원시타입.
정수형 : byte, short, int, long
실수형 : float, double
문자형 : char
boolean.
이 8가지 원시타입은 stack영역에 할당되게 된다.
이 stack은 제한적으로 접근을 할 수 있도록 나열된 구조이다. 후입선출. LIFO( Last In First Out) 마지막 들어온 게 처음으로 나오는 구조이다.
스택을 구현하려면 일반적으로 사용되는 필수 메소드가 있다.
1) pop : 스택의 가장 마지막에 위치한 데이터값을 빼낸 후 스택에서 삭제한다.
2) push : 스택의 가장 마지막에 데이터를 넣는다.
3) isEmpty : 스택이 empty즉 비어있는지 확인한다.
4) clear : 스택에 있는 모든 데이터를 없애고 스택을 초기화한다.
5) peek : 스택의 가장 마지막에 있는 데이터를 추출한다. pop메소드와는 다르게 스택에서 데이터를 삭제하는 건 아니다.
먼저 ArrayList를 생성해준다. ArraryList를 사용하기 위해서 객체를 생성하고 import를 해준다.
타입은 인테저로 지정.
어레이 배열에 add 코드를 이용해서 인테저 타입의 값을 넣어준다.
출력을 해주면 [1,2,7,10,21] 이 나오게 된다.