전체 글 (596) 썸네일형 리스트형 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()를 통해 구현된 객체를 얻어야 한다. .. JAVA 래퍼(Wrapper) 클래스와 박싱, 언박싱 1. 래퍼(Wrapper) 클래스 8개의 기본형을 객체로 다뤄야할 때 사용하는 클래스. 객체지향 언어인 자바에서 객체가 아닌 기본형을 사용하는 이유는 성능 때문. 2. Number 클래스 Long => 10^19 Double => 10^308 BigInteger => Long보다 더 큰 정수 BigDecimal => Double보다 더 큰 실수 3. 오토박싱 & 언박싱 오토박싱: 기본형 -> 래퍼클래스 언박싱: 래퍼클래스 -> 기본형 JDK 1.5 이전에는 기본형과 참조형간의 연산이 불가능했었다 JAVA Math 클래스 round(), rint() 1. Math클래스에서 round()는 무조건 올림(HALF_UP)이지만, rint()는 홀수인 경우 내림을 하고 짝수인 경우만 올림(round even)을 한다. round()는 값이 쌓일수록 오차가 커지지만 rint()는 오차가 커지지 않아서 오차를 줄이는 게 중요할 때 사용된다. JAVA 문자열 클래스의 동기화 1. 멀티 쓰레드 프로그램이 아닌 경우 동기화는 불필요한 성능 저하가 있다. 이럴 땐 StringBuffer클래스 대신 StringBuilder클래스를 사용하면 성능이 향상되지만 요즘엔 대부분 StringBuffer클래스를 사용한다. JAVA 문자열, String, StringBuffer, StringBuilder 1. 문자열을 초기화할때는 되도록 빈 문자열로 초기화하자. 굳이 객체 새로 만들지 말고. String str = new String(""); // 이거 쓰지 말고 String str = ""; // 이거 쓰자 2. String클래스의 valueOf() 함수는 기본형 변수값을 문자열로 바꿔준다. 참조형 변수의 경우 참조형 인스턴스의 toString()함수를 호출한다. 3. String클래스의 join()함수는 문자열을 합칠 때 유용하다. String animals = "dog,cat,bear"; String[] arr = animals.split(","); String str = String.join("-", arr); // "dog-cat-bear" 4. StringBuffer클래스는 문자열을 저장 & .. 이전 1 ··· 28 29 30 31 32 33 34 ··· 75 다음