본문 바로가기

전체 글

(32)
[STL] set, multiset 정리 이전 포스팅까지는 시퀀스 컨테이너에 대해 정리해 보았습니다. 이번 포스팅부터는 연관 컨테이너에 관한 내용을 다룰 계획입니다. 01. 연관 컨테이너 연관 컨테이너의 정의 시퀀스 컨테이너와 달리 컨테이너의 원소들을 순차적으로 삽입하지 않고, 원소 추가시 특정 정렬 기준(디폴트 less)에 의해 자동 정렬되는 컨테이너입니다. 연관 컨테이너의 종류 set multiset map multimap 연관 컨테이너의 특징 모든 연관 컨테이너는 인터페이스(생성자, 멤버 함수, 연산자)를 동일하게 사용하고 있습니다. 연관 컨테이너는 균형 이진 트리를 사용하므로, 원소를 빠르게 찾을 수 있습니다.(로그 시간 복잡도) key를 정렬 기준에 맞춰 균형 이진 트리에 저장하며, 이 key는 삽입, 검색, 제거 등에 모두 이용하고 ..
Interface 이번 포스팅에서는 Interface에 대해서 알아볼 것인데요. Interface는 추상클래스와 비슷한 개념으로, 추상 클래스에서 조금 더 심화적으로 추상화 된 개념이라고 할 수 있습니다. 추상클래스와 다른 점을 설명하자면, 1. 멤버변수는 상수형으로 선언되어야 하며 2. 다중상속이 가능하다. 라는 점입니다. 그리고 이러한 점때문에, 인터페이스를 사용하는 것인데요. Interface는 다음과 같이 정의할 수 있습니다. public interface 인터페이스명 [extends 부모인터페이스명, ...] { // 상수 // 추상 메서드 } // 예제 public interface Drwable { public static final int PLAIN_PEN = 1 public static final int ..
Toast Toast란? 사용자에게 짧은 메시지 형식으로 정보를 전달하는 팝업을 의미하며, 메시지를 표시할 공간만 차지하고 시간이 지나면 자동으로 사라지는 메시지이다. 메시지에 대한 사용자의 응답을 필요하지 않고 단순히 사용자에게 정보를 전달할 용도로 많이 사용된다. Toast 사용하기 버튼을 클릭하였을 때 메시지를 띄우는 예제 makeText() : Toast 클래스의 static 멤버 함수로, Toast 객체를 생성한다. 첫번째 인자: 현재 프로세스의 Context 정보 두번째 인자: 사용자에게 보여줄 문자열 세번째 인자: Toast 메시지를 화면에 띄우는 시간 -Toast.LENGTH_SHORT : 짧게 Toast 메시지를 표시한다. -Toast.LENGTH_LONG: 길게 Toast 메시지를 표시한다. sh..
객체지향 프로그래밍 프로그래밍을 하기 위한 언어는 여러 가지가 있는데, 이 언어들을 크게 2가지로 나눌 수 있다. " 절차지향 또는 객체지향 " 그런데 나는 절차지향과 객체지향이 어떤 것인지도 모르고 언어를 사용하고 있어서, 이번 포스팅에서는 자바를 공부하는 겸 객체지향이 무엇인지, 어떤 특징들을 가지고 있는지에 대해서 알아볼 것이다. 객체지향 프로그래밍이란? 여러 개의 독립된 단위, 즉 객체들이 주어지고 이 객체들끼리 메시지를 주고받아 데이터를 처리할 수 있게 하는 컴퓨터 프로그래밍의 패러다임 중 하나이다. 이렇게 말하면 무슨 뜻인지 정확히 안 와 닿을 수 있으니, 객체지향의 특징을 통해 설명해볼것이다. 먼저, 객체지향의 특징들을 나열해보자면 추상화, 캡슐화, 상속성, 다형성이 있다. 추상화란? 어떤 실체(객체)들에서 내..
Scanner 이번 포스팅에서는 Scanner 클래스를 이용한 입력방법에 대해 알아볼 것이다. 4) Scanner Scanner는 java.util 패키지에 속해 있는 자바의 내장 클래스로, 콘솔입력을 앞 방법들보다 쉽게 처리할 수 있게 해준다. Scanner를 이용해 입력을 받는 코드는 다음과 같다. import java.util.Scanner; // ① public class Test { public static void main(String[] args) { Scanner sc = new Scanner(System.in); // ② System.out.println(sc.next()); // ③ } } 번호 순서대로 설명하자면, ① : Scanner는 java.util 패키지에 속해있는 클래스로, 사용하려면 ja..
BufferedReader 이번 포스팅에서는 Java에서의 입력방법 중 하나인 BufferedReader에 대해 얘기해볼 것이다. 3) BufferedReader : 문자열을 읽어 들인다. 저번 포스팅에서 InputStreamReader 클래스는 고정된 길이로만 읽어야 한다는 불편한점이 있다고 하였다. BufferedReader는 사용자가 엔터키를 입력할 때까지 사용자의 입력을 전부 받아들일 수 있게 하는 클래스로, InputStreamReader의 단점을 보완해준다. 예시) 입력 : HelloWorld, 출력 : HelloWorld 그렇다면, 이제 BufferedReader을 이용해 입력을 받는 코드를 짜 보자. import java.io.BufferedReader; import java.io.InputStream; import..
InputStreamReader 이번 포스팅에서는 Java에서의 입력방법 중 하나인 InputStreamReader에 대해 얘기해볼 것이다. 2) InputStreamReader : 문자 단위로 읽어 들인다. 저번 포스팅에서 InputStream 클래스는 출력되는 값이 아스키코드 값이므로 다시 문자로 해석해야 하는 방식 때문에 불편하다고 하였다. InputStreamReader는 바이트 단위로 읽어 들이는 InputStream을 통해 입력을 받은 뒤, 문자 단위로 데이터를 변환시키는 중개자 역할을 하는 클래스로, InputStream의 단점을 보완해 우리가 입력한 문자 값을 그대로 출력해주는 역할을 한다. 예) 입력 : abc, 출력 : abc 그렇다면, 이제 InputStreamReader을 이용해 입력을 받는 코드를 짜 보자. im..
InputStream 이번 포스팅에서는 Java에서의 입력에 대해 알아볼 것이다. 먼저, 사용자가 입력을 할 수 있는 방법 4가지에 대해 얘기해볼 것이다. 1) InputStream : 바이트 단위로 문자를 읽어 들인다. 2) InputStreamReader : 문자 단위로 읽어 들인다. 3) BufferedReader : 문자열을 읽어 들인다. 4) Scanner 1) InputStream : 바이트 단위로 문자를 읽어 들인다. InputStream 은 java.io 패키지에 속해 있는 자바의 내장 클래스로, 이 클래스를 이용해 문자나 숫자를 입력받으면, 아스키코드 값이 출력된다. 예) 입력 : a , 출력 : 97 / 입력 : 0, 출력 : 48 그렇다면, 이제 InputStream을 이용해 입력을 받는 코드를 짜 보자...