본문 바로가기

Knowledge Wiki/Java

(51)
JAVA Comparable, Comparator 1. Comparable과 Comparator Comparable: (정렬 기준이 없는 경우)기본 정렬 기준을 구현하는데 사용 Comparator: 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용
JAVA Iterator 1. Iterator Iterator는 컬렉션에 저장된 요소들을 읽어오는 방법을 표준화한 것 Iterator는 1회용이라 한 번 쓰고 나면 다시 얻어와야 한다. Iterator는 new버전이고, Enumeration은 old버전이다. Iterator랑 Enumeration은 거의 비슷 ListIterator는 Iterator의 접근성을 향상시킨 것(단방향 -> 양방향). ListIterator는 잘 쓰지 않음. Map에는 iterator()가 없다. keySet(), entrySet(), values()를 호출해야 한다 Iteartor it = map.entrySet().iterator();
JAVA Arrays 1. Arrays 배열을 편리하게 다루기 위한 메소드(static) 제공 배열 채우기 => fill(), setAll() Arrays.binarySearch()를 사용하려면 먼저 Arrays.sort() 함수를 호출하여 배열을 정렬해야 한다. Arrays.asList() 함수는 Read-Only List를 반환한다. 그래서 아래처럼 써야한다. List list = new ArrayList(Arrays.asList(1,2,3,4,5));
JAVA Queue 클래스 13. 보통 Queue에 객체를 넣을 땐 offer(), 꺼낼 땐 poll()을 쓴다. Queue에서 예외가 발생하는 함수: add(), remove(), element() Queue에서 예외가 발생하지 않는 함수: offer(), poll(), peek()
JAVA Map 클래스 1. Map 키(key)와 값(value)의 쌍(pair)으로 이루어진 데이터의 집합 순서는 유지되지 않으며, 키는 중복을 허용하지 않고, 값은 중복을 허용한다. HashTable, HashMap은 비슷한 역할을 하지만 차이점이 있음. HashTable은 old버전이고 동기화가 되어있는 반면, HashMap은 new 버전이고 동기화가 되어있지 않다. Map 인터페이스는 HashMap, TreeMap이 핵심이고 순서 보장이 필요한 경우 LinkedHashMap을 사용하면 됨. 나머지는 필요할 때 찾아 쓰면 됨. 2. HashTable은 old 버전, HashMap은 new 버전 HashTable은 동기화가 처리되어 있고, HashMap은 동기화가 되어있지 않다. 3. TreeMap은 TreeSet과 비슷한..
JAVA Set 클래스 1. Set 순서를 유지하지 않는 데이터의 집합. 중복을 허용하지 않음. Set 인터페이스는 HashSet, TreeSet이 핵심. 나머지는 필요할 때 찾아 쓰면 됨. 2. HashSet의 add() 함수는 같은 객체가 없으면 저장하고, 있으면 저장하지 않는다. 객체 존재 여부를 판별할 때 equals()와 hashCode()를 호출함. 그래서 equals() 오버라이딩할 때 hashCode()도 오버라이딩 해놓기를 권장함. 합집합, 교집합, 차집합 등 집합 연산에 사용함. 3. TreeSet 이진 탐색 트리로 구현. 범위 탐색과 정렬에 유리. TreeSet 클래스나 TreeSet에 포함되는 데이터 클래스 둘 중 하나는 Comparable이나 Comparator를 구현해야 한다.
JAVA List 클래스 1. List 순서가 있는 데이터의 집합. 중복을 허용. List 인터페이스를 상속받은 클래스는 Vector, ArrayList, LinkedList임. Vector와 ArrayList는 거의 비슷한데 Vector는 old 버전, ArrayList는 new 버전임. List 인터페이스는 ArrayList와 LinkedList가 핵심. 나머지는 필요할 때 찾아 쓰면 됨. 1) ArrayList ArrayList는 동기화 처리가 안되있고 Vector는 동기화 처리가 되어 있다. ArrayList는 배열을 사용한다.(즉, 배열 기반의 List임) 배열 기반이기 때문에 ArrayList(int initialCapacity) 생성자를 통해 충분한 공간을 잡아주는 게 좋다. subList()의 반환 타입은 Read..
JAVA util 클래스들 1. java.util.Date 클래스 1995년 말 JDK 1.0 버전부터 사용했기 때문에 Date 메서드는 거의 deprecated되었지만 여전히 쓰이고 있다. 2. java.util.Calendar Date클래스를 개선한 새로운 클래스가 1997년 JDK1.1 버전에 나온 Calendar 클래스 But, 여전히 단점이 존재함 3. java.time 패키지 Date와 Calendar의 단점을 개선한 새로운 클래스들을 제공 (JDK1.8) Date와 Calender의 단점은 날짜와 시간을 한꺼번에 다루는거였음 time 패키지는 LocalDate, LocalTime을 만들어서 날짜와 시간을 분리함 4. Calendar 클래스는 추상클래스이므로 getInstance()를 통해 구현된 객체를 얻어야 한다. ..