수강한 클립명
List 인터페이스Stack과 Queue 구현하기
파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
코딩 비전공자라 학원에서 자바(코딩수업)수업을 수료했지만 실력부족을 느껴 기초부터 다시 해보자라는 생각과 웹개발의 전체적인 방법을 알아보고 싶어 주위에서 괜찮다고 했던 패스트캠퍼스 java/spring 웹 개발 마스터 를 수강하게 되었다.
완강을 하여 나만의 웹페이지를 만들고 이 미션수행을 통과해 환급을 받는게 올해 목표이다.
미션 일정
방법
List 인터페이스
Collection 하위 인터페이스
객체를 순서에 따라저장하고 고나리하는데 필요한 메서드가 선언된 인터페이스
배열의 기능을 구현하기 위한 메서드가 선언됨
ArrayList, Vector, LinkedList
--
ArrayList와 Vector
객체 배열 클래스
Vector는 자바 2부터 제공된 클래스
일반적으로는 ArrayList를 더 많이 사용 (Vector보단 ArrayList가 더 최근에 나옴)
Vector는 멀티 쓰레드 프로그램에서 동기화를 지원
동기화(synchronization)란 : 두 개의 쓰레드가 동시에 하나의 리소스에 접근 할 때
순서를 맞추어서 데이터의 오류가 방지하지 않도록 함
capacity와 size는 다른 의미임
capacity > 처음에 10개짜리 배열을 만들면 ArrayList의 경우 배열을 뻥튀기 시킨다 (다른 메모리를 가져와 배열의 용량을 넓힌다)
size > 10개짜리 배열을 만들었다고 해도 안에 있는 요소가 몇개가 있는지, 그게 size이다
--
ArrayList와 LinkedList
둘다 자료의 순차적 구조를 구현한 클래스
ArrayList는 배열을 구현한 클래스로 논리적 순서와 믈리적 순서가 동일 함
LinkedList는 논리적으로 순차적인 구조지만, 물리적으로는 순차적이지 않을 수 있음
LinkedList구조 (사진 참조)
LinkedList에서 자료의 추가와 삭제 (사진참조)
Stack과 Queue 구현하기
Stack 구현하기 (자바에서 이미 구현되어 있다.)
Last In First Out (LIFO) : 맨 마지막에 추가 된 요소가 가장 먼저 꺼내지는 자료구조
이미 구현된 클래스가 제공 됨
ArrayList나 LinkedList로 구현 할 수 있음
게임에서 무르기, 최근 자료 가져오기 등에 구현
<그림 - 사진참조>
--
Queue 구현하기
First In First Out(FIFO) : 먼저 저장된 자료가 먼저 꺼내지는 자료구조
선착순, 대기열등을 구현할 때 가장 많이 사용되는 자료구조
ArrayList나 LinkedList로 구현 할 수 있음
<그림 - 사진참조>
>일반적으로 많이 쓰는 자료구조 중에 하나
Set 인터페이스 - 1
Set인터페이스는 내부적으로 순서대로 저장되는게 아니다(중복도 허용하지않음). 그래서 꺼낼때 몇번째꺼를 꺼낼수 없기때문에
iterator 객체를 이용해서 사용할수 있다.
ex)아이디,학번,주민번호등 중복 허용 안하는것에 사용하면 좋음
* Iterator로 순회하기
Collection의 개체를 순회하는 인터페이스
iterator()메서드 호출
Iterator ir - memberArrayList.iterator();
Iterator에 선언된 메서드
메서드 설명
boolean hasNext() 이후에 요소가 더 있는지를 체크하는 메서드이며, 요소가 있다면 true를 반환합니다
E next() 다음에 있는 요소를 반환합니다.
--
Set 인터페이스 (정리)
Collection 하위의 인터페이스
중복을 허용하지 않음
List는 순서기반의 인터페이스지만, Set은 순서가 없음
get(i) 메서드가 제공되지 않음 (Iterator로 순회)
저장된 순서와 출력순서는 다를 수 있음
아이디,주민번호,사번등 유일한 값이나 객체를 관리할 때 사용
HashSet,TreeSet클래스
--
TreeSet클래스
Tree가 붙으면 정렬을 위해서 사용것이고 내부적으로 바이너리 서치트리를 씀
객체의 정렬에 사용되는 클래스
중복을 허용하지 않으면서 오름차순이나 내림차순으로 객체를 정렬 함
내부적으로 이진 검색 트리(binary search tree)로 구현되어 있음
이진 검색 트리에 자료가 저장 될 때 비교하여 저장 될 위치를 정함
객체 비교를 위해 Comparable이나 comparator 인터페이스를 구현 해야 함
Set 인터페이스 - 2
TreeSet 클래스
객체의 정렬에 사용되는 클래스
중복을 허용하지 않으면서 오름차순이나 내림차순으로 객체를 정렬 함
내부적으로 이진 검색 트리(binary search tree)로 구현되어 있음
이진 검색 트리에 자료가 저장 될 때 비교하여 저장될 위치를 정함
객체 비교를 위해 Comparable이나 Comparator 인터페이스를 구현 해야 함
--
Comparable 인터페이스와 Comparator 인터페이스
정렬 대상이 되는 클래스가 구현해야 하는 인터페이스
Comparable은 compareTo() 메서드를 구현
매개 변수와 객체 자신(this)를 비교
Comparator는 compare()메서드를 구현
두 개의 매개 변수를 비교
TreeSet 생성자에 Comparator가 구현된 객체를 매개변수로 전달
TreeSet<Member> treeSet = new TreeSet<Member>(new Member());
일번적으로 Comparable을 더 많이 사용
이미 Comparable이 구현된 경우 Comparator를 이용하여 다른 정렬 방식을 정의 할 수 있음
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 21회차 미션 - 자바인강 (0) | 2021.04.28 |
---|---|
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 20회차 미션 - 자바인강 (0) | 2021.04.25 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 18회차 미션 - 자바인강 (0) | 2021.04.17 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 17회차 미션 - 자바인강 (0) | 2021.04.12 |
[패스트캠퍼스 수강후기] Java 웹 개발 마스터 올인원 패키지 Online 16회차 미션 - 자바인강 (0) | 2021.04.10 |