Java75 컬렉션 프레임워크(컬렉션 API)_기본 개념 [1/4] [ 컬렉션 프레임워크 ] 여러 가지 자료구조 알고리즘을 미리 구현하여 데이터를 효율적으로 처리할 수 있도록 함 C언어의 연결리스트와 같은 개념 등을 하나의 클래스로 구현하여 쉽게 사용 가능 컬레션 프레임워크는 List, Set, Map 계열로 나뉘어집니다. [ List 계열 ] 배열 또는 연결리스트 자료구조와 동일한 구조 (순서를 가지는 자료 구조) 기존 배열과 연결리스트를 편하게 사용할 수 있도록 클래스가 구성되어 있음 ArrayList : 일반 배열을 다루는 클래스, 동기화 처리가 불가능 Vector : ArrayList와 동일하나 동기화 처리가 가능하기 때문에 속도는 상대적으로 느림 LinkedList : 연결리스트 자료구조 구현 따라서 데이터 검색과 기존 데이터 변경이 잦은 구조일 때는 Array.. ▸JAVA/기본 문법 2019. 12. 10. java.util.regex 주요 메소드 [1/1] [ regex 패키지 ] 정규표현식을 다루는 패키지 [ Pattern 클래스] 정규표현식의 컴파일된 버전 정규표현식과 원본 문자열을 객체화(Matcher class)할 수 있는 메소드 제공 [ Matcher 클래스 ] Pattern 클래스의 메소드를 통해 객체화된 원본 문자열 Matcher 클래스의 객체(인스턴스)를 통해 정규표현식을 이용한 다양한 편집 가능 실제로 정규표현식을 사용하는 순서대로 정리해보겠습니다. 정규표현식에 대한 설명은 아래 두 가지 글을 참조하시면 됩니다. 2019/12/10 - [JAVA/기본 문법] - 정규표현식 (메타문자와 주의사항) [1/2] 2019/12/10 - [JAVA/기본 문법] - 정규표현식 (작성 방법 및 전방탐색, 후방탐색) [2/2] [ Pattern.ma.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.util.Random 주요 메소드 [1/1] [ 랜덤 클래스 (Random Class ] 난수 발생 관련 함수 Math 클래스의 난수 생성과 동일한 기능의 메소드를 포함하여, 다른 여러 메소드 보유 랜덤 클래스 인스턴스 생성 후 사용 가능 [ 생성자 ] () : 무작위 난수 생성 (long seed) : 매개변수의 값을 기초로 난수를 발생시킴 seed값을 주면 기초값이 생기기 때문에 다른 인스턴스에서도 동일한 난수가 계속 생성됩니다. 따라서 실제로는 사용되지 않으며 같은 환경에서 여러 번 테스트를 할 때 사용됩니다. C언어에서 난수 생성 기초값을 시간으로 하는 것을 보아 Java도 비슷할 것으로 유추됩니다. 아래와 같이 seed값을 지정해줄 경우 같은 seed값을 가진 인스턴스의 난수는 항상 동일합니다. package study.first; im.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.util.StringTokenizer 주요 메소드 [1/1] [ StringTokenizer Class ] C언어 strtok의 로직과 유사하지만 원본을 훼손하지 않음 문자열을 특정 문자열(구분자)로 나누어 (Token) 및 저장 및 처리 String 클래스의 split()과 비슷하지만, 배열이 아닌 인스턴스 객체를 만들어 저장 인스턴스의 클래스 메소드를 통해 실행시마다 쪼개서 문자열을 반환받음 java.util 패키지는 기본 패키지가 아니기 때문에 import 해줘야 합니다. String의 split() 메소드와 비슷한 것 같지만 작동 방식이 달라 상황에 따라 더 편리한 경우가 생깁니다. 굳이 배열 저장공간을 따로 만들지 않고도 문자를 나눠서 확인할 수 있습니다. (필요한 문자열만 뽑아내기에 적합) [ 생성자 ] (String str) : 공백 기준으로 문자열.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.Enum (열거형) 주요 메소드 [1/1] 이전 글에서 사용한 코드를 그대로 써서 주요 메소드를 정리해보았습니다. package study.first; public class Study { public static void main(String[] args) { } } enum FinalValues { // enum 클래스의 열거 상수 (자동으로 public static final로 선언) CLOCK_SIZE(100), CLOCK_COLOR("White"), BOOK_SIZE(200), BOOK_COLOR("Blue"); // 값을 담을 필드 생성(private 캡슐화) private int size; private String color; // size 생성자 선언 FinalValues(int size) { this.size = size; } .. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.Math (수학계산) 주요 메소드 [1/1] [ Math Class ] 생성자가 private으로 선언되어 있어 인스턴스 생성 불가 모든 필드와 메소드는 static [ abs() ] 절대값 반환 반환 타입은 인자로 전달한 타입과 같음 package study.first; public class Study { public static void main(String[] args) { double a = -12.5; double b = Math.abs(a); System.out.println(b);// 12.5 } } [ ceil() ] 소숫점 값이 있다면 올림값 반환 double 타입 반환만 해주기 때문에 float변수에 담기 위해서는 형변환 필요 argument는 자동으로 double 타입 반환 본래 float 타입 실수는 저장하기 전에 doub.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.StringBuilder (문자열) 주요 메소드 [1/2] StringBuilder와 StringBuffer 클래스도 String 클래스와 같이 문자열을 다루는 클래스입니다. 다만, String 클래스가 문자열을 생성자로 넣어 인스턴스를 한 번 생성하고 나면 인스턴스가 가진 문자열 값을 변경하지 못하는 단점을 보완한 클래스입니다. 즉, 같은 인스턴스 안의 문자열(char 배열) 필드 값을 추가하거나 변경할 수 있도록 되어 있습니다. 또한 원본 문자열을 바꿀 수 있는만큼 문자열을 다루는 메소드도 더 많이 포함되어 있습니다. 두 가지 클래스는 모두 쓰임과 메소드가 같지만, StringBuffer는 여러곳에서 동시에 같은 문자열 인스턴스에 접근할 때 중복 점유를 막을 수 있는 장치가 되어 있습니다(동기화 처리). 때문에 StringBuilder에 비해 좀 더 무겁.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.String (문자열) 주요 메소드 [4/4] [ format() ] static 메소드로 인스턴스 없이 사용 가능 C언어 printf() 와 비슷한 형태로 형식지정자를 사용해서 출력 가능 1. conversion (형식지정자) 여러가지 형식지정자가 있지만 가장 많이 쓰이는 것은 %d(10진수 정수형), %f(실수형), %s(문자열)이 있습니다. 이 외에도 %x(16진수 정수형), %o(8진수 정수형)이 있습니다. C언어와 거의 같습니다. 형식지정자 및 형식지정자와 짝이 맞는 값을 제외하고 다른 옵션은 선택사항입니다. 2. argument_index 옵션 (1$ : 첫번째 인자, 2$ : 두번째 인자...) 원래 순서대로 출력되는데 그 순서를 바꿔서 출력이 가능합니다. 하지만 숫자를 변수로 사용할 수 없기 때문에 어차피 수동으로 코딩해야해서 자.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.String (문자열) 주요 메소드 [3/4] [ split() ] 문자열을 구분자로 나눠서 배열을 생성해줌 나눌 갯수도 인자값으로 넣어주면 앞에서 갯수만큼만 나눠주고 뒤는 나누지 않음 package study.first; public class Study { public static void main(String[] args) { String a = "aaaaaBaaaBaaaBaaaa"; String[] list = a.split("B"); // 모두 나눔 for (String num : list) System.out.println(num); } } package study.first; public class Study { public static void main(String[] args) { String a = "aaaaaBaaaBaaaBaaa.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.String (문자열) 주요 메소드 [2/4] [ indexOf() ] 원하는 인덱스(위치)부터 앞에서 뒤로 순서대로 문자열 검색 원하는 인덱스를 명시하지 않으면 가장 앞에서부터 뒤로 검색 해당 문자열이 있으면 해당 인덱스를, 없으면 -1 반환 (boolean 타입이 아닌 int 타입 반환) package study.first; public class Study { public static void main(String[] args) { String a = new String("Hello World"); System.out.println(a.indexOf("H")); // 0 System.out.println(a.indexOf("H", 5)); // -1 (앞에서 다섯 번째 글자부터 검색) System.out.println(a.indexOf("h").. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.String (문자열) 주요 메소드 [1/4] 문자열 처리를 돕는 클래스입니다. 메모리 구조편에서 살펴봤듯이 String 타입은 변수가 아니라 클래스의 인스턴스입니다. 즉, 객체이자 참조변수가 되는 것이죠. 원시타입 변수가 아닌 모든 타입은 어떠한 클래스의 인스턴스입니다. String a = "abc" 또는 String a = new String("abc") 형태로 String Class의 인스턴스를 하나 생성했다면 java.lang.String 클래스에 생성자를 문자열로 넣어주고 인스턴스를 생성했다는 의미입니다. 그래서 a.method()형태로 해당 클래스에 포함된 메소드를 사용할 수 있게 되는 것입니다. 또한 system.out.println(a) 형태로 출력할 수 있는 것은 String Class에서 toString() 메소드가 생성자로.. ▸JAVA/라이브러리(API) 2019. 12. 10. java.lang.Object 주요 메소드 [1/1] 모든 클래스가 기본적으로 상속받는 Object 클래스의 주요 메소드입니다. [ hashCode() ] 인스턴스가 저장된 힙 영역의 주소값을 해쉬값으로 변환해서 반환 서로 다른 인스턴스 또는 객체는 다른 주소에 저장돼 있으므로 다른 값 출력 package study.first; public class Study { public static void main(String[] args) { Example a = new Example(); Example b = new Example(); System.out.println(a.hashCode()); System.out.println(b.hashCode()); } } class Example { int a = 1; } [ getClass() ] 인스턴스가 가지고.. ▸JAVA/라이브러리(API) 2019. 12. 10. 정규표현식 (메타문자와 주의사항) [1/2] [ 정규표현식(Regular Expression - regex) ] 문자열을 찾기 위한 조건을 문자열로 표현한 것 특정 패턴의 문자열을 찾거나, 문자열이 패턴에 맞는지 검사할 때 사용 패턴 검사는 java.util.regex 패키지의 클래스들을 이용함 메소드 매개변수에 "regex"라고 써져 있는 것은 정규표현식을 매개변수로 받는다는 의미 정규표현식은 특정 패턴을 가진 문자열을 추출하거나, 이메일 주소를 입력할 때와 같이 특정 패턴에 맞게 문자열이 작성됐는지 검사할 때 사용됩니다. 아래는 정규표현식으로 문자열을 검색하는 결과를 시각화해서 보여주는 사이트 링크입니다. 검색식을 테스트해볼 때 유용합니다. https://regex101.com/ [ 정규표현식의 메타 문자 ] 특정 문자의 패턴을 표현하기 위한.. ▸JAVA/기본 문법 2019. 12. 10. 래퍼 클래스 (Wrapper Class) [ 래퍼 클래스 (Wrapper Class) ] 원시타입 변수를 객체화 시켜줌 문자열을 원시타입 변수로 바꿔서 저장해주는 메소드 등 해당 타입에 대한 여러 메소드 제공 원시타입 8개만큼 래퍼 클래스 8개가 존재 ※ 원시(primitive) 타입 (8가지) 1. 논리타입 : boolean 2. 정수타입 : byte, short, int, long 3. 실수타입 : float, double 4. 문자타입 : char 원시타입은 데이터 저장의 기본 단위입니다. 그리고 원시타입이 아닌 모든 타입의 변수는 객체(인스턴스)의 주소를 가진 변수(참조변수)입니다. 따라서 저장된 데이터를 바꿀 수 있는 단위는 오직 원시타입뿐이며, 나머지는 데이터가 저장된 위치를 가리키는 메모리 주소를 담은 변수입니다. 원시타입을 필.. ▸JAVA/기본 문법 2019. 12. 10. 열거형 클래스 (Enum Class) [ 열거형 클래스(enum class) ] 상수(final) 전용 클래스 코드는 짧고 의미를 강하게 하는 효과가 있음 정해진 상수를 매개변수로 받아야 하는 메소드의 매개변수를 강제할 수 있음 조금 어려운 개념인데 위의 세 가지 항목을 예시와 함께 정리해보겠습니다. 상세한 클래스 메소드 사용법은 아래 링크를 참조하시면 됩니다. 2019/12/10 - [JAVA/라이브러리(API)] - java.lang.Enum (열거형) 주요 메소드 [1/1] 상수(미리 정해진 값)을 사용하는 경우, 먼저 final 필드를 사용하는 방법이 있습니다. 예를 들어 제품 종류에 따른 크기와 색깔이 정해진 상수를 모아둔 클래스가 있고, 이를 필요로 하는 다른 클래스에서 가져다가 출력해주는 메소드가 있다고 가정해보겠습니다. 아래.. ▸JAVA/기본 문법 2019. 12. 10. 이전 1 2 3 4 5 다음 💲 추천 글 반응형