본문 바로가기

반응형

분류 전체보기

(236)
[JAVA] Arrays 1. Arrays Arrays 클래스는 배열을 다루는 다양한 메서드들을 포함하고 있는 클래스이다. - copyOf(), copyOfRange() copyOf() 는 배열 전체를, copyOfRange() 는 배열의 일부를 복사하여 새로운 배열을 만들어 반환한다. copyOfRange() 에서 범위의 끝은 포함되지 않는다. (external) - fill(), setAll() fill() 은 배열의 모든 요소를 지정된 값으로 채운다. setAll() 은 배열을 채우는데 사용할 함수형 인터페이스를 매개변수로 받는다. 이 메서드를 호출할 때는 함수형 인터페이스를 구현한 객체를 매개변수로 지정하던가, 람다식을 지정해야 한다. int[] arr = new int[5]; Arrays.fill(arr, 13); //..
[JAVA] Iterator, ListIterator, Enumeration 1. Iterator, ListIterator, Enumeration - Iterator 컬렉션 프레임워크는 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화하였다. 컬렉션에 저장된 각 요소에 접근하는 기능을 가진 Iterator 인터페이스를 정의하고, Collection 인터페이스에는 Iterator (Iterator 인터페이스를 구현한 클래스의 인스턴스) 를 반환하는 iterator() 를 정의하고 있다. iterator() 는 Collection 인터페이스에 정의된 메서드이므로 List 와 Set 에도 포함되어 있다. iterator() 메서드를 호출하여 Iterator 를 반환받은 후에 반복문을 사용하여 요소들에 접근할 수 있다. 메서드 설명 boolean hasNext() 읽어 올 요소가 남아있는..
[JAVA] Stack, Queue 1. Stack 과 Queue Stack 은 LIFO (last in first out) 의 구조로 데이터를 저장하고 추출하는 자료구조이고, Queue 는 FIFO (first in first out) 의 구조로 데이터를 저장하고 추출하는 자료구조이다. 일반적으로 stack 은 데이터의 저장과 추출에 push 와 pop, queue 는 offer 와 poll 이라는 용어를 사용한다. 스택은 자료구조의 가장 마지막에서 순차적으로 데이터가 저장되거나 출력되기 때문에 ArrayList 와 같은 배열 기반의 컬렉션 클래스로 구현하면 적합하다. 하지만 큐의 경우 데이터의 제거가 가장 첫번째 데이터부터 수행되기 때문에 ArrayList 보다는 데이터의 추가, 삭제에 용이한 Linkedlist 로 구현하는 것이 더 ..
[JAVA] List - ArrayList, LinkedList 1. ArrayList ArrayList 는 기존의 Vector 를 개선한 것으로 Vector 의 구현원리와 기능적인 측면이 동일하다. ArrayList 는 List 인터페이스를 구현한 클래스이기 때문에 저장된 값의 순서를 유지하고 중복을 허용한다. ArrayList 는 Object 배열을 이용하여 데이터를 순차적으로 저장한다. 입력되는 객체들은 배열에 순서대로 저장되며, 배열의 길이를 넘어가면 더 큰 배열을 새로 생성하여 기존의 값들을 복사한 다음에 값을 저장한다. 값을 삭제하면 삭제된 값의 공간이 빈다. 그러면 나머지 값들이 자리이동을 진행하여 빈 공간을 채운다. ArrayList 나 Vector 와 같이 배열을 이용하여 데이터를 저장하는 자료구조는 인덱스를 사용해 값을 읽어오고 저장하는 작업에는 효..
[JAVA] Collections Framework 1. 컬렉션 인터페이스 컬렉션 프레임워크에는 List, Set, Map 3개의 컬렉션 타입을 가지고 있다. 자바는 각각의 타입에 대한 인터페이스를 가지고 있으며, List 와 Set 타입의 공통점을 모아 상위의 Collection 인터페이스를 추가로 정의하였다. 인터페이스 특징 List 순서가 있는 데이터의 집합. 데이터의 중복을 허용한다. - ArrayList, LinkedList, Stack, Vector 등 Set 순서를 유지하지 않는 데이터의 집합. 데이터의 중복을 허용하지 않는다. - HashSet, TreeSet 등 Map key, value 의 형식으로 데이터 쌍을 저장하는 데이터 집합. 순서는 유지하지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. - HashMap, Tree..
[JAVA] Format 클래스 자바에는 숫자나 날짜 등을 어떤 형식으로 출력할지를 지정할 수 있도록 다양한 형식화 클래스들을 가지고 있다. 이런 형식화 클래스들을 사용하면 문자, 숫자, 날짜 등의 데이터를 원하는 형식으로 출력할 수 있다. 1. DecimalFormat DecimalFormat 은 숫자를 형식화 하는 클래스이다. DecimalFormat 을 이용하면 숫자 데이터를 정수, 부동소수점, 금액 등 다양한 형식으로 표현할 수 있으며, 반대로 일정한 형식의 텍스트를 숫자로 변환할 수 있다. 형식화 클래스에서는 해당 형식을 패턴을 사용하여 표현하는데, 패턴에 사용되는 기호와 설명은 다음과 같다. 기호 설명 패턴 예시 (값 1234567.89) 0 10진수 (기본값 0) 0 0.0 0000000000.0000 1234568 123..
[vscode] vscode 파이썬 디버깅 VS Code 는 .vscode/launch.json 파일에 저장되어있는 설정을 바탕으로 디버깅 기능을 수행할 수 있도록 되어있다. launch.json 에 다양한 디버깅 설정을 지정할 수 있는데, 파이썬 프로그램을 디버깅시의 설정과 사용법 등에 대해서 알아본다. 1. Python Debugger 기본적으로 파이썬을 디버깅하기 위해서는 launch.json 에 파이썬 디버깅을 위한 설정을 저장해야한다. 아무런 디버깅 설정이 되어있지 않은 vscode 에서 디버깅을 수행하려고 하면 어떤 설정으로 디버깅할 것인지 선택하도록 한다. 이때 Python file 을 선택하면 기본 python 설정 내용을 포함한 launch.json 파일이 열리게 된다. 이 파일에 설정을 통해서 파이썬을 디버깅할 수 있다. 기본 ..
[Linux] PID, PPID 1. PID, PPID - PID PID 는 Process ID 의 줄임말로 운영체제에서 프로세스를 식별하기 위해 부여하는 번호를 의미한다. 프로세스는 실행 중인 프로그램을 의미한다. 메모리에 적재되어 있으며, 프로세스의 상태 정보, PCB 를 포함한 개념이다. PID 의 최대값은 32768 이다. 32768 인 이유는 16bit signed integer 를 사용하기 때문이다. PID 의 ID 할당 방식은 최근 할당된 PID 에 1을 더한 값으로 할당한다. 순서대로 1씩 할당되다가 32768 을 넘어가면 다시 1부터 시작한다. - PPID PPID 는 Parent Process ID 의 줄임말로 부모 프로세스의 PID 를 의미한다. 부모 프로세스는 현재 실행 중인 프로세스 (자식 프로세스) 를 시스템 ..

반응형