Java 라이브러리 정리

2024. 11. 19. 13:14코딩테스트/Java

라이브러리

Java에서는 우리가 원하는 모든것은 객체 즉,class단위로 작성하여 프로그램을 작성한다.

우리가 작성하는 class외에 Java에서는 미리 자주사용되고 유용한 기능을 하는 class들을 만들어 놓고 제공을한다.

이때 이 class들을 관련된 기능별로 분류하여 pakage 단위로 묶어서 관리하는데 이 pakage 파일을 라이브러리라고 한다.

예: java.util.Arrays -> java.util[패키지].Arrays[클래스].sort()[메서드]

자바 어플리케이션을 만든다는 것은

결과적으로 자바에서 제공하는 패키지들을 부품으로 조립해서 사용자 정의 로직을 만드는 과정이라고 할 수 있다.


 

java.lang

자바 프로그래밍을 위한 가장 기본적인 패키지와 클래스를 포함하고 있다.

1. java.lang.Object

모든 클래스의 최고 조상

2. java.lang.String

- charAt() : String객체의 n번째 문자 값을 반환

- equals(Object anObject) : 문자열 같은지 비교

- length() : 문자열 길이 반환

- indexOf(int ch) : 문자의 위치 반환

indexOf(String str) : 해당 문자열의 시작 위치, 해당 문자열 없으면 -1을 리턴

- lastIndexOf(int ch) : 뒤에서부터 지정 문자 위치 인덱스 번호 찾기

- substring(시작x, 끝y) : 특정 위치의 문자부터 반환 (x이상~y미만), 끝 생략할 경우 끝까지

- split() : 매개변수로 들어온 문자열을 기준으로 문자열을 분리하여 String 리턴

- replace(char old, char new) : 문자열에서 하나의 문자를 다른 문자로 바꿀 때 사용, String[] 리턴

- toLowerCase(), toUpperCase() : 소문자, 대문자로 바꾸어 String 리턴

- trim() : 문자열 앞, 뒤 공백을 제거 (단, 문자열 사이 공백은 제거 안 됨)

- valueof() : 문자열형식으로 바꾸어 리턴

- startsWith(문자열) : 문자열이 파라미터로 들어온 문자열로 시작되는지 확인하고 boolean 리턴

- endsWith(문자열) : 문자열이 파라미터로 들어온 문자열로 끝나는지 확인하고 boolean 리턴

3. java.lang.StringBuffer

- append() : 문자열 뒤에 문자열을 추가할 수 있는 메서드

- delete(int x, int y) : x이상 y미만의 문자를 지운다. 원본 값도 변경됨

deleteCharAt(int x) : x에 있는 문자 지움

- insert(int x, String str) : x 위치에 str 문자열 삽입

- reverse() : 문자열의 순서를 역순으로 바꾸어줌

4. java.lang.Math

- Math.random(): 0.0이상~1.0미만의 랜덤한 숫자 생성

- Math.floor(): 내림하기

- Math.ceil(): 올림하기

- Math.round(): 반올림하기

- Math.abs(): 절대값

5. java.lang.Wrapper

- Primitive Type을 Reference Type으로 사용

byte -> Byte

short -> Short

int -> Integer

long -> Long

float -> Float

double -> Double

char -> Character

boolean -> Boolean

- autoBoxing, autoUnBoxing 개념

- parseInt(): 문자열을 숫자로 바꾸는 메서드

Integer.parseInt("20");

Double.parseDouble("2.22");

6. java.lang.Integer

1) 2진수 관련

- Integer.bitCount(int num) : 숫자 num을 binary로 변환후, 1의 수를 반환

- Integer.toBinaryString(int num) : 숫자 num을 2진수로 변환해서 반환 (String)

- Integer.parseInt(String s, int n진수); 2진수 String을 n진수로 변환해서 반환 (int)

2) Integer.compare(값1, 값2)

- 기준 값과 비교대상이 동일한 값일 경우 0

- 기준 값이 비교대상 보다 작은 경우 -1

- 기준 값이 비교대상 보다 큰 경우 1


java.util

프로그램을 제어하기 위한 클래스와 데이터를 효율적으로 저장하기 위한 클래스들을 담고 있다.

1. java.util.Random

- nextInt(): 가능한 모든 int 값(양수와 음수)에 걸친 범위의 난수를 반환한다.

- nextInt(int num): 0 부터 num-1까지 범위에 있는 난수를 반환한다.

2. java.util.StringTokenizer

- 문자열 파싱, Token이란 파싱한 결과물

- StringTokenizer은 클래스이므로 객체를 생성하고 사용

StringTokenizer str = new StringTokenizer([문자열],"구분자");

- 구분자를 생략하면 공백이 기본 구분자, 지정한 한가지 구분자로만 문자열을 나눌 수 있음

- 구분자들 중간의 공백은 무시 됨 (moon,sun, ,star => 공백무시), split은 공백도 처리함

- 객체이므로 메소드 사용가능해서 편리함

> countTokens() : 남아있는 토큰수 int 반환

> hasMoreTokens() : 토큰 남아있는지 여부 boolean 반환

> nextToken() : 토큰 String 반환

3. java.util.Collection

- 여러개의 Data를 하나의 변수로 다룰 수 있게 하는 API

- 배열: 같은 데이터타입만, 생성시 크기 지정, 한번 생성된 배열은 크기 수정이 불가능

- Collection의 주요 인터페이스 3가지

1) List

- 순서가 유지되고 데이터의 중복 허용

- 구현된 클래스: ArrayList, LinkedList, Vector, Stack, Queue..

2) Set

- 순서가 유지되지 않고, 데이터의 중복을 허용하지 않음

- 구현된 클래스: HashSet, TreeSet..

3) Map

- 키(key)와 값(value) 쌍으로 이루어진 데이터 집합

- 순서가 유지되지 않음

- 키는 중복을 허용하지 않고, 값의 중복은 허용함

- 이미 있는 키면 값을 수정

- 구현된 클래스: HashMap, TreeMaps, HashTable, Properties..

- Collection의 메서드

> boolean add() : 새로운 요소를 끝에 추가

> void clean() : Collection의 모든 요소를 삭제

> boolean remove(Object) : 해당 객체의 요소를 삭제

> boolean contains(Object) : 해당 객체를 포함하고 있는지 확인

> boolean isEmpty() : 해당 Collection이 비어있는지 확인

> int size() : 요소의 갯수 반환

> Object[] toArray() : 컬렉션을 Object배열로 변환

> Iterator<E> iterator() : 해당 Collection을 반복자(iterator)로 변환

*List, Set구현한 모든 클래스에서 사용 가능

*boolean hasNext() : 다음 요소가 있으면 true, 없으면 false

*E ar.next() : 다음 요소를 반환

*but, iterator사용하는 것 보다 향상된 for문 쓰는 것을 권장

3-1. Generic

- 타입을 제한(일반환)하는 것을 의미

- 객체의 타입 안정성을 높일 수 있다

- 리턴타입에 대한 형변환 안해도 됨

- <>안에는 참조형을 선언해줘야 한다

3-2. List

ArrayList<e> cfAryList = new ArrayList<e>();

- add(E) : 요소 추가

- add(index, E): 해당 인덱스 번호에 요소를 추가 (잘 안씀)

- set(index, E): 해당 인덱스 번호의 요소를 수정

- get(index) : 해당 인덱스 번호의 요소를 리턴

- size() : 요소의 갯수 반환

- clear() : 모든 요소를 삭제

- remove(index): 해당 인덱스 번호의 요소를 삭제

3-3. Map

- void clear() : Map의 모든 것 제거

- boolean containKey(Object key) : 매개변수 key가 해당 맵에 존재하는지 여부를 반환

- boolean containValue(Object value) : 매개변수 value가 해당 맵에 존재하는지 여부를 반환

- V get(Object key) : 해당 key로 value를 반환, 없으면 null반환

- V put(Key, Value) : key로 value를 저장

- Set<k> keySet() : 맵의 key값들을 Set객체로 변환 (import java.util.Set)

- V remove(Object Key) : 해당 key로 Value를 삭제하는 것

- int size() : 맵의 총 갯수 반환

4. java.util.Calendar

- 날짜나 시간을 다룰 때 사용

- get(field) : Calendar 변수에 저장된 값을 반환

- getTimeinMillis() : 1월 1일부터 현재까지의 시간을 millseconds로 표현 (차이 구할 때 주로 사용)

- set(field, 값) : 특정 시간이나 날짜로 변경 할 때 사용

- set(year, month, date) : Sets the values for the calendar fields YEAR, MONTH, and DAY_OF_MONTH.

- setTime(Date): Date, long타입의 변수를 Calendar객체로 변환해줌

- boolean after(Object cal) : 현재 객체가 매개변수로 온 객체가 나타내는 시간보다 나중인지 판단

- boolean before(Object cal) : 현재 객체가 매개변수로 온 객체가 나타내는 시간보다 먼저인지 판단

- roll (field, amount) : 해당 필드에서 특정 시간을 흐르게 하는 것, 다른 필드에 영향을 주지 않음

- add (field, amount) : 해당 필드에서 특정 시간을 흐르게 하는 것, 다른 필드에 영향을 줌

5. java.util.Arrays

- Arrays.sort(배열명) : 배열 정렬

- Arrays.copyOfRange(원본 배열명, 복사할 시작인덱스, 복사할 끝인덱스): 시인덱스 ~ 끝 인덱스 '이전'까지 복사됨

- Arrays.asList(배열명): 일반 배열을 ArrayList로 변환

Arrats.asList(배열명).indexOf(배열에서 찾을 객체): 리스트의 앞쪽부터 인자와 동일한 객체가 있는지 찾으며, 존재한다면 그 인덱스를 리턴합니다. 존재하지 않는다면 -1을 리턴