본문 바로가기

반응형

Programming

(148)
적절한 자료구조를 사용하는 방법
Set 자료구조란 무엇인가? Set 자료구조란 무엇인가? - Set은 집합이다. - 데이터를 중복해서 저장할 수 없다. - 입력 순서대로의 저장 순서를 보장하지 않는다. (예외. LinkedHashSet) - 기본적으로 List계열은 index(Node)로 관리하기 때문에 순서대로 저장되는 구조다. Set / Sorted Interface를 구현하는 클래스 1. HashSet 2. LinkedHashSet 3. TreeSet Set/ Interface에 선언된 대표적인 메소드 HashSet - 가장 기본적인 Set collection 클래스이다. - 입력순서 보장되지 않고, 순서도 보장되지 않는다. - hash에 의해 데이터의 위치를 특정시켜서 색인(Search)할 수 있게 만든 것이다. - hash와 set의 기능을 합친 것. -..
Queue interface List란? (Deque, LinkedList, ArrayDeque, PriorityQueue) Queue 큐 interface List란? - Queue interface는 선형 자료구조로 주로 순서가 있는 데이터를 기반으로 선입선출(FIFO)을 위해 만들어진 인터페이스이다. - 제일 앞쪽의 데이터 위치를 head라고 하고, 가장 뒤에 있는 것을 tail 이라고 한다. - Queue는 단방향 삽입삭제가 가능한 반면, Queue를 상속하고 있는 Deque은 양방향이 가능하다. (큐에서 확장)- - Deque은 카드를 생각하면 좋다. 중간에서 카드를 뺄 수는 없지만, 맨 아래, 맨 위에서 접근이 모두 가능하다. Queue Deque interface 를 구현하는 클래스 1. LinkedList 2. ArrayDeque 3. PriorityQueue Queue / Deque interface에 선언된 ..
클래스 변수, 인스턴스 변수, 지역 변수 public class test { int a; // 인스턴스 변수 static int b; // 클래스 변수 void method() { int c; // 지역 변수 } } 변수의 종류 선언위치 생성시기(메모리 할당시기) 클래스 변수 클래스 영역 클래스가 메모리에 올라갈 때 인스턴스 변수 인스턴스가 생성될 때 지역 변수 클래스 이외의 영역(메서드, 생성자, 초기화 블럭) 변수 선언문이 수행되었을 때 인스턴스 변수 인스턴스 변수는 인스턴스마다 다른 값을 가져야 할 때, 인스턴스 변수로 선언한다. 클래스 변수 클래스 변수는 인스턴스 변수에 static만 앞에 붙혀주면 되는데, 모든 인스턴스가 공통된 값을 공유하게 되는 개념이다. 클래스가 로딩될 때 생성되기 때문에 메모리에는 한 번만 올라간다. 그래서 st..
객체지향 프로그래밍의 현실세계 예시 (클래스, 객체, 캡슐화, 추상화, 상속, 다형성) Class (속성과 기능)와 Object 클래스는 형태, 넓이, 높이와 같은 속성과 온오프 스위치, 볼륨스위치, 채널버튼 등이다. 객체와 클래스의 다른 점은, 객체는 클래스의 직접적인 instance이다. TV의 속성과 기능을 가진 다양한 종류의 TV를 만드는 것은 객체가 된다. 이를 생성자를 통해 만들 수 있다. 캡슐화 (Encapsulation) 과 추상화 캡슐화는 TV의 뒷면과 같이 커버를 씌우는 것과 같다. 기계를 보호하고, 잘못 동작하는 것을 방지하기 위함이다. 추상화는 캡슐화의 기능적 측면을 의미하는 것으로 이해할 수 있다. 사람들이 동작을 하도록 하는 interface만을 확인하고 원하는 기능을 수행하도록 하지만, 그 안의 실제 기능이 어떻게 돌아가는 지는 알 수 없도록 하는 것이다. 상속 ..
List 리스트 자료구조란? (ArrayList, LinkedList, Vector, Stack) List - List Interface는 대표적인 선형자료구조다. - 우리가 보통 알고 있는 고정값을 주는 배열구조는 선언한 배열의 크기 이상으로 나아가면 IndexOutofBoundExcpetion이라는 예외가 뜬다. - 이를 보완하여 나온 것이 List interface를 통해 구현된 클래스들이다. - 이들은 동적 크기를 가지고 배열처럼 사용할 수 있게 되어있다. List Interface를 구현하는 클래스 1. ArrayList 2. LinkedList 3. Vector (+Vector를 상속받은 Stack) List Interface의 대표적인 메소드 ArrayList - Object[] 배열을 사용하여 primitive 배열 (int[])와 유사한 형태라고 볼 수 있지만, 동적으로 관리되는 배열..
우분투 버추얼머신 명령어 실습 ls (list) + 옵션 + 파일명 현재 디렉토리의 내용을 보여준다. pwd (print working directory 현재 작업 중인 디렉토리를 확인할 때 사용(절대경로에 해당) cd (change directory) 해당 디렉토리 경로로 이동하며, 작업하고자 하는 디렉토리를 변경할 때 사용한다. mkdir (make directory) 디렉토리를 만들 때 사용한다. rmdir (remove directory) 디렉토리를 삭제할 때 사용한다. cp (copy) 파일 복사 (디렉토리 내부까지 복사하려면 -r을 붙여주면 된다. rm (remove) 파일을 삭제한다. mv (move) 파일 이름을 변경하거나 다른 디렉토리로 옮길 때 사용한다.
자바 컬렉션 프레임워크 자료구조와 알고리즘 - 알고리즘을 선택할 때, 자료구조를 알고 있는 것이 상당히 도움이 된다. - LinkedList : 순서가 있는 데이터에서 삽입과 삭제가 빈번하게 발생할 때 - ArrayList : 그렇지 않을 때 - 자료구조는 프로그래밍의 기초이기 때문에 표준 라이브러리가 보통 제공 선형구조와 비선형구조 자료구조 - 형태에 따른 자료구조 선형구조(Linear Data Structure) - 데이터가 일렬로 연결된 형태 - 리스트, 큐, 덱이 있다. 비선형구조(NonLinear Data Structure) - 일렬로 나열된 것이 아니라, - 거미줄처럼 각 요소가 서로 연결된 형태 - 그래프, 트리 집합(Set) - 집합은 기타 자료구조 또는 집합 자료구조라고 한다. - set은 table과 가까운 ..

반응형