본문 바로가기

Back-end139

11 컬렉션 프레임웍(7) Collections Arrays가 배열과 관련된 메서드를 제공하는 것처럼, Collections는 컬렉션과 관련된 메서드를 제공한다. fill(), copy(), sort(), binarySearch() 등의 메서드는 두 클래스에 모두 포함되어 있으며 같은 기능을 한다. java.util.Collection은 인터페이스고, java.util.Collections는 클래스이다. 컬렉션의 동기화 멀티 쓰레드(multi-thread) 프로그래밍에서 하나의 객체를 여러 쓰레드가 동시에 접근할 수 있기 때문에 데이터의 일관성(consistency)을 유지하기 위해서는 공유되는 객체에 동기화(synchronization)가 필요하다. Vector와 Hashtable과 같은 구버전의 클래스들은 자체적으로 동기화 처.. 2021. 7. 11.
SQL 문법(1) 문법 설명 SELECT DISTINCT 열 열 중복 제거 열 AS 별칭 별칭 설정 ORDER BY 열지정 (정렬옵션) 오름차순 ASC, 내림차순 DESC AND 조건 WHERE절에서 조건 연결 OR 조건 WHERE절에서 조건 연결 !=, , ^= 서로 다르면 TRUE 반환 NOT 논리 부정 연산(TRUE->FALSE,역 성립) WHERE 열이름 IN(데이터1,...) OR연산 여러개 묶음 (NOT) BETWEEN A TO B A와 B사이 데이터 조회 LIKE ‘%S_’ 문자데이터 검색 IS (NOT) NULL NULL여부 확인 UNION 집합연산, 열의 타입 같아야함(중복 X) UNION ALL 중복허용, A∪B (합집합) MINUS A-B (차집합) INTERSECT A∩B (교집합) UPPER(문자열.. 2021. 7. 11.
11 컬렉션 프레임웍(6) TreeMap TreeMap은 이름에서 알 수 있듯이 이진검색트리의 형태로 키와 값의 쌍으로 이루어진 데이터를 저장한다. 그래서 검색과 정렬에 적합한 컬렉션 클래스이다. HashMap과 TreeMap의 검색은 대부분의 경우에서 HashMap이 TreeMap보다 더 뛰어나므로 HashMap을 사용하는 것이 좋다. 다만 범위 검색이나 정렬이 필요한 경우에는 TreeMap을 사용하자 TreeMap의 생성자와 메서드 TreeMap() : TreeMap객체를 생성 TreeMap(Comparator c) : 지정된 Comparator를 기준으로 정렬하는 TreeMap객체를 생성 TreeMap(Map m) : 주어진 Map에 저장된 모든 요소를 포함하는 TreeMap을 생성 TreeMap(SortedMap m) : .. 2021. 7. 10.
04 정확하고 다양한 결과 출력 WHERE절과 연산자 필요한 데이터만 출력하는 WHERE절 WHERE절은 SELECT문으로 데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력하는데 사용된다. 그리고 여러 연산자를 함께 사용하면 더욱 세밀하게 데이터 검색이 가능하다. SELECT* FROM EMP WHERE DEPTNO = 30; WHERE절에 작성한 DEPTNO=30은 'EMP테이블에서 부서 번호 값이 30인 행만 조회하라'는 뜻이다. 즉 부서번호 30인 사람들의 데이터만 출력한 것이다. 이렇게 WHERE절은 많은 데이터 중에서 어떤 조건에 일치하는 행만을 골라내어 조회하는데 사용된다. WHERE절을 사용한 SELECT문의 기본형식은 다음과 같다. SELECT [조회할 열1 이름], [열2 이름], ... , [열N 이름] FROM [조회할 테이블 .. 2021. 7. 10.
11 컬렉션 프레임웍(5) TreeSet TreeSet은 이진 검색 트리(binary search tree)라는 자료구조의 형태로 데이터를 저장하는 컬렉션 클래스이다. 이진 검색 트리는 정렬, 검색, 범위검색(range search)에 높은 성능을 보여주는 자료구조이며 TreeSet은 이진 검색 트리의 성능을 향상시킨 레드-블랙 트리(Red-Black tree)로 구현되어 있다. 그리고 Set인터페이스를 구현했으므로 중복된 데이터의 저장을 허용하지 않으며 정렬된 위치에 저장하므로 저장순서를 유지하지도 않는다. 이진 트리(binary tree)는 링크드리스트처럼 여러 개의 노드(node)가 서로 연결된 구조로, 각 노드에 최대 2개의 노드를 연결할 수 있으며 루트(root)라고 불리는 하나의 노드에서부터 시작해서 계속 확장해 나갈 .. 2021. 7. 9.
11 컬렉션 프레임웍(4) Comparator와 Comparable 이전 예제에서 Arrays.sort()를 호출만 하면 컴퓨터가 알아서 배열을 정렬하는 것처럼 보이지만, 사실 Character클래스의 Cmpatable의 구현에 의해 정렬되었던 것이다. Comparator와 Comparable은 모두 인터페이스로 컬렉션을 정렬하는데 필요한 메서드를 정의하고 있으며, Comparable을 구현하고 있는 클래스들은 같은 타입의 인스턴스 끼리 서로 비교할 수 있는 클래스들, 주로 Integer와 같은 wrapper클래스와 String, Date, File과 같은 것들이며 기본적으로 오름차순, 즉 작은 갑셍서부터 큰 값의 순으로 정렬되도록 구현되어 있다. 그래서 Comparable을 구현한 클래스는 정렬이 가능하다는 것을 의미한다. Co.. 2021. 7. 8.