본문 바로가기

반응형

프로그래밍언어/JAVA

(61)
[JAVA] Comparator, Comparable 1. Comparator, Comparable Comparator 와 Comparable 은 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있다. Comparable 을 구현하고 있는 클래스들은 같은 타입의 인스턴스끼리 서로 비교할 수 있는 클래스들이며, 기본적으로 오름차순으로 정렬하도록 구현되어 있다. 그래서 Comparable 을 구현한 클래스는 모두 비교가 가능하다는 것을 알 수 있다. public interface Comparator { int compare(Object o1, Object o2); boolean equals(Object obj); } public interface Comparable { public int compareTo(Object o); } compare()..
[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..
[JAVA] Calendar & Date 1. Calendar & Date Calendar 와 Date 는 java 초창기부터 제공되어진 클래스들이다. 초창기에 만들어진만큼 단점도 많지만 그만큼 많이 사용된다. 이러한 단점들을 보완하여 나온 것이 JDK1.8 의 java.time 패키지이다. 이번 장에서는 Calendar 와 Date 클래스의 사용 예제에 대해서 알아본다. - Calendar & GregorianCalendar Calendar 는 추상 클래스이기 때문에 직접 객체를 생성하여 사용할 수 없다. Calendar 클래스를 상속받은 GregorianCalendar 와 BuddhistCalendar 를 사용하여 객체를 생성하여 사용한다. 대부분의 국가에서는 그레고리력을 사용하기 때문에 GregorianCalendar 를 사용하면 되지만 ..

반응형