본문 바로가기

언어공부

(188)
자바 Iterator, ListIterator, Enumeration 자바 Iterator, ListIterator, Enumeration에 대해서 알아보자. Iterator, ListIterator, Enumeration은 모두 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스이다. Enumeration(JDK 1.0)은 Iterator(JDK 1.2)의 구버전이며, ListIterator는 Iterator의 기능을 향상 시킨 것이다. ** Enumeration/iterator/tokenizer는 한번만 사용됨. nextElement()로 한번 사용되면 없어지기 때문에 다른 객체주소를 새로 만들어 저장하는것이 좋다. Iterator 컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스. Collection인터페이스에는 'Iterator를 구현한 클래스의 인스턴스'를 ..
자바 스택(Stack), 큐(Queue) 자바 Stack, Queue에 대해서 알아보자. 스택 (Stack) 스택은 마지막에 저장한 데이터를 가장 먼저 꺼내게 되는 LIFO(Last In First Out)구조로 되어 있다. 스택의 구조는 양 옆과 바닥이 막혀 있어서 한 방향으로 뺄 수 있는 구조이다. 예를들어 스택에 0, 1, 2의 순서로 데이터를 넣었다면 꺼낼 때는 2, 1, 0의 순서로 꺼내게 된다. 즉 넣은 순서와 꺼낸 순서가 뒤집어지게 되는 것이다. 스택은 순차적으로 데이터를 추가하고 삭제하는 ArrayList와 같은 배열기반의 컬렉션 클래스가 적합하다. 스택의 활용 예로는 수식계산, 수식괄호검사, 워드프로세서의 undo/redo, 웹브라우저의 뒤로/앞으로 가 있다. ex) 큐(Queue) 큐는 처음에 저장한 데이터를 가장 먼저 꺼내게..
자바 List인터페이스, ArrayList, LinkedList 자바 List인터페이스, ArrayList, LinkedList에 대해서 알아보자 List인터페이스 List인터페이스는 순서가 있는 데이터의 집합으로 데이터의 중복을 허용한다. (예를 들어 대기자 명단.) 구현클래스들은 Vector, Stack, ArrayList, LinkedList가 있다. ArrayList ArrayList는 컬렉션 프레임워크에서 가장 많이 사용되는 컬렉션 클래스이다. 이 ArrayList는 List인터페이스를 구현하기 때문에 데이터의 저장순서가 유지되고 중복을 허용한다. ArrayList는 기존의 Vector를 개선한 것으로 Vector와 구현원리, 기능적인 측면에서 동일하다고 할 수 있다. Vector는 기존에 작성된 소스와의 호환성을 위해서 계속 남겨두고 있을 뿐이기 대문에 가..
자바 컬렉션(collection), 컬렉션 프레임워크, 컬렉션 인터페이스의 메소드 자바 컬렉션(collection)에 대해서 알아보자. 컬렉션 프레임워크(Collection Framework) 컬렉션 프레임워크는 다수의 데이터 그룹을 저장하는 클래스들을 표준화한 설계를 뜻한다. Java API문서에는 컬렉션 프레임워크를 데이터 그룹으로 다루고 표현하기 위한 단일화된 구조(architecture)라고 정의하고있다. JDK1.2 이전까지는 Vector, Hashtable와 같은 컬렉션 클래스, 다수의 데이터를 저장할 수 있는 클래스들을 서로 다른 각자의 방식으로 처리해야 했으나 1.2부터는 컬렉션 프레임워크가 등장하면서 다양한 종류의 컬렉션 클래스가 추가되고 모든 컬렉션 클래스를 표준화된 방식으로 다룰 수 있도록 체계화되었다. 컬렉션의 특징으로는 복수개의 타입을 동시 저장할 수 있고 복수..
자바 Calendar 클래스 자바 Calendar 클래스에 대해 알아보자. Calendar 클래스 calendar는 추상클래스이기 때문에 직접객체를 생성할 수 없고, 메소드를 통해서 완전히 구현된 클래스의 인스턴스를 얻어야 된다. Calendar.getInstance();메소드를 이용해 Calendar클래스를 상속받는 다른 클래스 객체를 생성한다. java.util.Calendar를 import해줘야 한다. 보통 년/월/일/시/분/초 값을 반환할 때 많이 사용되는 클래스로, get()메소드를 이용해 값을 사용한다. 다만, 월을 반환할때는 0부터 시작되기 때문에, +1을 해주어 1월로 맞춰주는게 좋다. (0~11이 반환되기 때문에 +1을 해주어 1~12로 맞춰주는게 좋다.) ex)
자바 StringTokenizer클래스로 문자열 분리 자바 StringTokenizer클래스에 대해서 알아보자. StringTokenizer클래스 StringTokenizer클래스는 말그래도 문자열을 토큰화해서 문자열을 분리할 수 있는 클래스이다. 해당 클래스를 사용하려면 "java.util.StringTokenizer"를 import해줘야 한다. StringTokenizer를 생성하는 방법은 아래와 같다. import java.util.StringTokenizer; public class StringTokenEx { public static void main(String[] args) { StringTokenizer phone=new StringTokenizer("010 9999 9999"); //띄어쓰기 기준으로 문자열을 분리 StringTokenize..
자바 래퍼(Wrapper)클래스, 오토박싱, 언박싱 자바 래퍼(Wrapper)클래스, 오토박싱, 오토언박싱에 대해 알아보자 래퍼(Wrapper)클래스 래퍼클래스는 자바의 기본 자료형 8개를 포장해서 클래스화 한것을 뜻한다. 때로는 기본형 변수도 객체로 다뤄야 하는 경우가 있는데 예를 들어 매개변수로 객체를 요구할 때, 기본형 값이 아닌 객체로 저장해야할 때, 객체간의 비교가 필요할 때 등등의 경우에는 기본형 값들을 객체로 변환하여 작업을 수행해야 한다. 래퍼 클래스의 생성자는 매개변수로 문자열이나 각 자료형들의 값들을 인자로 받는다. 이 때 주의해야할 것은 생성자의 매개변수로 문자열을 제공할 때, 각 자료형에 알맞은 문자열을 사용해야 한다. ex) new Integer("1.0"); // >>NumberFormat Exception발생 래퍼 클래스들은 모..
자바 StringBuffer 클래스, StringBuffer 클래스의 메소드 자바 StringBuffer 클래스에 대해서 알아보자. StringBuffer클래스 String클래스는 인스턴스를 생성할 때 지정된 문자열을 변경할 수 없지만 StringBuffer클래스는 변경이 가능하다. 내부적으로 문자열 편집을 위한 버퍼(buffer)를 가지고 있으며, StringBuffer인스턴스를 생성할 때 그 크기를 지정할 수 있다. append()로 매개변수에 입력된 값을 문자열로 변환하여 StringBuffer인스턴스가 저장하고 있는 문자열 뒤에 덧붙인다. public class StringBuffer01 { public static void main(String[] args) { StringBuffer sb=new StringBuffer("XX"); sb.append("YY");//sb의..