///////
Search

git,인터페이스,collection_김지수

Intellij에서 Git다루는 방법

1. Intellij와 git 연결

연결과정

2. commit and push

commit and push 과정

인터페이스

1. 인터페이스

인터페이스의 역할

객체의 사용 방법을 정의한 타입이다.
존재 이유는 개발 코드를 수정하지 않고, 객체를 변경할 수 있도록 하기 위해서 이다.

인터페이스 vs 추상 클래스

추상클래스
자신 클래스의 기능을 하위 클래스로 확장 시키기 위해 사용
재사용성을 실현한다.
다중 상속 불가
ex) Animal 클래스가 있고 Eagle, Penguin 클래스는 Animal 클래스를 상속 받는다.
인터페이스
각 클래스의 목적에 맞게 기능을 구현하기 위해 사용
다중 상속 가능
ex) Fly 인터페이스를 Eagle이 상속 받고, Swimming 인터페이스를 Penguin이 상속받는다.

인터페이스 활용

홀수 짝수를 구분하는 프로그램을 구현
하나는 한글로 다른 하나는 영어로 결과가 출력
인터페이스 구현
인터페이스를 상속받는 클래스 구현
홀수 짝수 클래스 구현
Main 클래스 구현

List

1. Collection Framework의 개념

Collection Framework

많은 객체를 효율적으로 관리할 수 있는 인터페이스와 클래스
객체를 수집해서 저장하는 역할을 한다.
주요 인터페이스로 List, Set, Map이 있다.

2. List 컬렉션

List란?

객체를 일렬로 늘어놓은 구조를 가지고 있다.
객체들을 인텍스로 관리하기 때문에 자동 인텍스가 부여된다.
검색, 삭제할 수 있는 기능을 제공한다.
List는 객체 자체를 저장하는 것이 아닌 참조한다.
List 인터페이스는 제네릭타입이다.

List 관련 메소드

3. ArrayList

ArrayList란?

List 인터페이스의 구현 클래스
객체를 추가하면 객체가 인텍스로 관리된다.
자동적으로 저장공간을 늘린다.
List<E> list = new ArrayList<E>();
0에서부터 차례대로 객체가 추가된다.
list 하나가 제거되면 뒤에 있는 list들은 앞으로 당겨진다.
삽입, 삭제가 많이 일어나는 작업에서 ArrayList를 사용하면 성능에 문제가 생긴다. (LinkedList를 사용)

ArrayList 활용

ArrayList활용예제

4. Vector

Vector란

ArrayList와 같은 내부구조를 가지고 있다.
ArrayList와 달리 동기화된 메소드로 구성되어 있기 때문에 멀티 스레드가 동시에 이 메소드들을 실행할 수 없다.
List<E> list = new Vector<E>();

5. LinkedList

LinkedList란?

ArrayList와 내부 구조가 완전히 다르다.
ArrayList는 내부 배열에 객체를 저장해서 인덱스로 관리
LinkedList는 인접 참조를 링크해서 체인처럼 관리
추가, 제거 시 앞 뒤 링크만 변경
삭제, 추가가 빈번하게 일어날 시 좋은 성능을 발휘