▸JAVA/라이브러리(API)31 Comparator를 사용한 문자열 정렬 및 여러 개의 배열 객체 정렬 하나의 배열이 아닌 여러 개의 배열을 일정 기준으로 정렬하는 방법입니다. 혹시 sort() 메소드의 매개변수가 배열의 보이는 순서와 반대로 들어오는 것과, 음수가 리턴될 때 자리를 바꿔준다는 것을 모르시는 분은 아래 글을 먼저 읽고 오시는게 좋을 것 같습니다. [JAVA/- 라이브러리(API)] - java.lang.Comparable / java.util.Comparator 사용법 사실 반대로 이해하고 있어도 정렬하는데 보통 지장이 없긴 하지만 해당 개념을 모르면 디버깅을 하거나 문제를 파악할 때 헷갈릴 수 있을 것 같습니다. 그리고 조금 더 응용을 하게 되면 매개변수의 위치와 리턴값의 설정이 중요해질 수 있습니다. 아래와 같은 두 배열이 있다고 가정하겠습니다. 두 배열을 내림차순으로 정렬하기 위해서는.. ▸JAVA/라이브러리(API) 2020. 4. 19. java.lang.Comparable / java.util.Comparator 사용법 [ java.lang.Comparable ] 객체 자신이 가지고 있는 자신의 정렬 기준을 정의하는 인터페이스 Arrays.sort() 및 Collection.sort() 메소드의 기준으로 적용 [ java.util.Comparator ] Arrays.sort() 및 Collection.sort() 메소드의 기준으로 삽입해주는 정렬 기준을 가진 인터페이스 Comparable은 직접 클래스를 만들 때 해당 클래스 객체의 정렬 기준을 미리 설정해 두기 위해 구현하는 인터페이스입니다. 래퍼 클래스나 String과 같이 자바에서 정렬이 가능한 타입들은 모두 Comparable을 구현하고 있습니다. 내부적인 정렬 기준을 이미 가지고 있다는 의미입니다. * 내부적인 Comparable 구현 정렬 기준 - 숫자 : 오.. ▸JAVA/라이브러리(API) 2020. 4. 13. java.util.Properties 주요 메소드 [1/1] [ Properties 클래스 ] MAP 계열의 컬렉션 프레임워크와 비슷하게 동작하는 파일 "Key = Value" 형태로 된 "파일이름.properties" 파일 또는 Xml 파일 key를 주면 Value를 반환하는 기능을 가짐 DB의 연결정보 등을 저장해두는 용도로 많이 쓰임 Enum(열거형) 클래스나 MAP 컬렉션 API와 비슷한 개념의 파일 버전입니다. 코드를 건들이지 않고도 정보를 변경할 수 있다는 강점이 있습니다. [ 생성 ] 파일을 직접 여는 클래스가 아니므로 FileReader 또는 FileInputStream 객체를 매개변수로 받음 외부 리소스와 직접 연결되지 않으므로 '확인된 예외'가 throw되어 있지 않음 load() 메소드를 통해 파일 정보를 넣어줌 [ 값(value) 가져오기 ].. ▸JAVA/라이브러리(API) 2019. 12. 19. java.nio 패키지 사용법(Channel / Buffer / Charset) [1/1] [ java.nio.channel 패키지 ] 다양한 외부 리소스와 내부의 버퍼를 연결해주는 채널을 생성해주는 클래스들 존재 양방향 채널로 사용할 수도 있고 단방향 채널로 사용할 수도 있음 java.io의 스트림 클래스들에 비해 입출력 속도가 빠름 java.io의 스트림 클래스들과 다르게 무조건 버퍼를 사용해야 함 [ java.nio 패키지 ] boolean 타입을 제외한 원시타입 별 버퍼 클래스를 제공 Buffer 인터페이스를 상속받기 때문에 클래스들의 사용법이 거의 비슷함 파일 채널(FileChannel)과 바이트 버퍼(ByteBuffer) 클래스의 사용법 위주로 정리하겠습니다. 다른 리소스와 연결되는 채널 및 다른 타입의 버퍼 클래스도 거의 사용법은 유사합니다. 특별한 기능을 가진 채널 및 버퍼 클래.. ▸JAVA/라이브러리(API) 2019. 12. 17. java.nio.file.Files 주요 메소드 [1/1] [ Files 클래스 ] Static 메소드로 구성되어 있음 Path 객체를 이용해 파일 시스템 작업 수행 데이터 입출력에 대한 기본 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] 모두 Static 메소드로 이루어져 있어 별도의 인스턴스 생성이 없음 파일 또는 폴더의 주소 정보를 가진 Path 클래스의 인스턴스를 매개변수로 메소드 수행 boolean isDirectory(Path p) - 폴더인지 아.. ▸JAVA/라이브러리(API) 2019. 12. 16. java.nio.file.Path 주요 메소드 [1/1] 데이터 입출력에 대한 기본 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] java.nio.file.Paths 클래스의 get() 메소드를 통해 생성 가능 (static 메소드) 폴더 구조는 한번에 줘도 되고 나눠서 따로 줘도 됨. 어떻게 묶어도 같은 의미가 됨 package study.first; import java.nio.file.Path; import java.nio.file.Paths; pub.. ▸JAVA/라이브러리(API) 2019. 12. 16. java.io.File 주요 메소드 [1/1] [ File 클래스 ] 파일 내용이 아닌, 파일 자체(껍데기)를 다룸 NIO2만으로는 파일 조작이 어려워 병행해서 사용하면 효율적 NIO2와 서로 변환할 수 있음 파일 클래스를 사용하면 파일 스트림을 열기 전에 실제 파일에 대한 정보를 확인할 수 있고, 또 파일 자체를 삭제하거나 이름을 변경하는 등의 작업을 수행할 수 있습니다. 데이터 입출력에 대한 기본 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ].. ▸JAVA/라이브러리(API) 2019. 12. 16. java.io.FileWriter 주요 메소드 [1/1] [ FileReader ] FileOutputStream과 유사한 기능 문자 스트림으로서 문자 단위의 바이트 변환 기능을 가짐 FileOutputStream 클래스가 바이트 스트림이라면 FileWriter 클래스는 문자 스트림입니다. 즉, 바이트 단위가 아닌 문자 단위로 입출력을 수행합니다. 외부 리소스 입출력에 대한 개념과 설명은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] new FileWriter(F.. ▸JAVA/라이브러리(API) 2019. 12. 15. java.io.FileReader 주요 메소드 [1/1] [ FileReader ] FileInputStream과 유사한 기능 문자 스트림으로서 문자 단위의 바이트 변환 기능을 가짐 FileInputStream 클래스가 바이트 스트림이라면 FileReader 클래스는 문자 스트림입니다. 즉, 바이트 단위가 아닌 문자 단위로 입출력을 수행합니다. 외부 리소스 입출력에 대한 개념과 설명은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] new FileIReader(Fi.. ▸JAVA/라이브러리(API) 2019. 12. 15. java.io.FileOutputStream 주요 메소드 [1/1] [ FileOutputStream ] FileInputStream과 마찬가지로 java.io의 가장 기본이 되는 파일 입출력 클래스 출력 스트림(통로)을 생성해줌 사용법은 간단하지만, 버퍼를 사용하지 않기 때문에 느림 속도 문제를 해결하기 위해 버퍼를 사용하는 다른 클래스와 같이 쓰는 경우가 많음 외부 리소스 입출력에 대한 개념과 설명은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] new FileOutpu.. ▸JAVA/라이브러리(API) 2019. 12. 15. java.io.FileInputStream 주요 메소드 [1/1] [ FileInputstream ] java.io의 가장 기본 파일 입출력 클래스 입력 스트림(통로)을 생성해줌 사용법은 간단하지만, 버퍼를 사용하지 않기 때문에 느림 속도 문제를 해결하기 위해 버퍼를 사용하는 다른 클래스와 같이 쓰는 경우가 많음 외부 리소스 입출력에 대한 개념과 설명은 아래 링크글을 참조하시면 됩니다. 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_io / nio / nio2 [1/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.io [2/3] 2019/12/16 - [JAVA/기본 문법] - 외부 데이터 입출력_java.nio [3/3] [ 생성자 ] new FileInputStream(File file) new FileIn.. ▸JAVA/라이브러리(API) 2019. 12. 15. java.util.Collections 주요 메소드 [1/1] [ Collections Class ] 모두 static 메소드로 구성됨 컬렉션 타입의 객체에 대한 객체생성, 정렬, 병합, 검색 등의 알고리즘을 구현 컬렉션 프레임워크의 기본 개념과 배열 사용법은 아래 링크글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_MAP 계열 [2/4] 2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_Set 계열 [3/4] 2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_배열 다루기 [4/4] [ max() / min() ] 지정된 컬렉션의 가장.. ▸JAVA/라이브러리(API) 2019. 12. 12. java.util.TreeSet 주요 메소드 [1/1] [ TreeSet Class ] 중복 없는 데이터 집합을 다룸 HashSet에 비해 상대적으로 데이터 처리 속도가 느리지만 다른 컬렉션에 비해 빠름 TreeMap Class와 유사한 작동 원리 컬렉션 프레임워크의 기본개념과, HashSet의 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] 2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_Set 계열 [3/4] [ 생성자 ] new TreeSet() 인자값으로 다른 컬렉션을 줄 수 있음 [ add() ] 값 추가, 중복값은 무시 객체의 경우 중복값을 피하기 위해 hashcode()와 equals() 메소드를 필히 오버라이딩 .. ▸JAVA/라이브러리(API) 2019. 12. 11. java.util.HashSet 주요 메소드 [1/1] [ HashSet Class ] 중복 없는 데이터 집합을 다룸 컬렉션 프레임워크 중 데이터 처리 속도가 가장 빠름 HashMap Class와 유사한 작동 원리 컬렉션 프레임워크의 기본개념과, HashSet의 개념은 아래 링크글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] 2019/12/11 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_Set 계열 [3/4] [ 생성자 ] new HashSet(); 인자값으로 용량과 사용률을 줄 수 있음 (HashMap과 동일) 용량 : 해시 테이블의 갯수를 의미 ( 카테고리의 갯수라고 보면 됨, 기본 16) 사용률 : 해시 테이블이 얼마만큼 다 차면 늘려줄 것인지 퍼센트.. ▸JAVA/라이브러리(API) 2019. 12. 11. java.util.TreeMap 주요 메소드 [1/1] [ TreeMap Class ] 컬렉션 프레임워크 Map 계열의 TreeMap 자료구조를 구현한 클래스 입력 순서에 상관 없이 자료를 트리 구조로 만들어 저장 및 검색 컬렉션 프레임워크 및 Map 계열의 기본 개념은 아래 글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] 2019/12/10 - [JAVA/기본 문법] - 컬렉션 프레임워크(컬렉션 API)_MAP 계열 [2/4] [ 생성자 ] 다른 맵계열과 마찬가지로 키(key)와 값(value)의 타입을 제네릭으로 지정 new TreeMap(); package study.first; import java.util.TreeMap; public class Main { public.. ▸JAVA/라이브러리(API) 2019. 12. 11. 이전 1 2 3 다음 💲 추천 글 반응형