API - java.util 패키지
java,util 패키지는 자바 프로그램 개발에 보조 역할을 하는 클래스들을 포함하고 있다.
주로 컬렉션 관련 클래스들을 담고있다.
▶ Java.util 패키지 주요 클래스
- Arrays : 배열 조작
- Date : 날짜와 시간 정보를 저장
- Calendar : 운영체제의 날짜와 시간
- Random : 난수를 얻을 때 사용
Arrays 클래스
- 1. Arrays 클래스는 배열 조작 기능을 가지고 있다.
▶ 배열의 복사, 항목 정렬, 항목 검색 - Arrays 클래스의 모든 메서드는 정적 메스드이므로, 클래스이름으로 바로 사용이 가능하다.
- Arrays 클래스의 주요메서드
- binarySearch(배열, 찾는값) : 전체 배열 항목에서 찾는 값이 있는 인덱스를 리턴
- copyOf(원본배열, 복사할 배열) : 원본 배열의 0번 인덱스부터 복사할 길이만큼의 인덱스까지 복사
- copyOfRange(원본배열, 시작인덱스, 끝인덱스) : 원본 배열의 시작 인덱스에서 끝 인덱스까지 복사한 배열 리턴
→ 시작 인덱스는 포함되지만, 끝 인덱스는 포함되지 않음 - sort(배열) : 배열의 전체 항목을 오름차순으로 정렬
- toString(배열) : 배열의 값들을 [값1, 값2....]와 같은 문자열 형식으로 리턴
import java.util.Arrays;
public class ArrayEx {
public static void main(String[] args) {
int[] arr = { 5, 6, 7, 8, 9, 1, 2, 3, 4 };
// 정렬
Arrays.sort(arr);
// 배열의 모습을 문자열
System.out.println(Arrays.toString(arr));
// 배열의 복사
int[] newArr = Arrays.copyOf(arr, arr.length);
System.out.println(Arrays.toString(newArr));
int[] newArr2 = Arrays.copyOf(arr, 3);
System.out.println(Arrays.toString(newArr2));
int[] newArr3 = Arrays.copyOfRange(arr, 0, 5); // 0~5미만 까지 복사
System.out.println(Arrays.toString(newArr3));
// 배열의 탐색
// 선행조건은 반드시 정렬
int index = Arrays.binarySearch(arr, 5); // 배열, 찾을값
System.out.println("5는 " + index + "번째 위치에 있습니다");
int index2 = Arrays.binarySearch(arr, 20);
System.out.println("찾는 값이 없다면 음수를 반환:" + index2);
// 배열의 비교
if (Arrays.equals(arr, newArr)) {
System.out.println("배열의 요소가 같음");
}
}
}
Date 클래스
● Date 클래스는 날짜를 표현하는 클래스이다.
→ 객체 간에 날짜 정보를 주고 받을 때 주로 사용한다.
● Date 객체를 기본 생성자로 생성하면 컴퓨터의 현재 날짜를 읽어 객체로 만든다.
● Date 클래스의 toString() 메서드는 영문으로된 날짜를 문자열로 리턴한다.
→ 만약 특정 문자열을 포맷으로 얻고 싶다면 java.text 패키지의 SimpleDateFormat 클래스를 이용하면 된다.
SimpleDateFormat()
● SimpleDateFormat() 클래스는 날짜를 원하는 형식으로 표현하기 위한 클래스이다.
※ java.text 패키지에 구성되어 있는 API이다.
● 패턴을 사용하여 생성자의 매개값으로 표현형식을 지정하여 객체를 생성한 후 format() 메서드를 호출하여
패턴이 적용된 문자열을 얻을 수 있다.
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class LocalDateTimeEx {
public static void main(String[] args) {
/*
* LocalDate - 년 월 일 LocalTime - 시 분 초 LocalDateTime - 년 월 일 시 분 초
*/
// 현재시간
LocalDate now = LocalDate.now();
System.out.println("첫번째 출력 : " + now);
// 지정시간
LocalDate now2 = LocalDate.of(2022, 10, 1);
System.out.println("두번째 출력 : " + now2);
//
LocalTime now3 = LocalTime.now();
System.out.println("세번째 출력 : " + now3);
//
LocalDateTime now4 = LocalDateTime.now();
System.out.println("네번째 출력 : " + now4);
System.out.println("---------------------------------");
// LocalDateTime -> String 포맷
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy년 MM월 dd일 hh:mm:ss");
System.out.println("다섯번째 출력 : " + now4.format(dtf));
}
}
SimpleDateFormat() 예시
public class DateEx {
public static void main(String[] args) {
// Date클래스와 SimpleDateFormat
Date date = new Date();
System.out.println(date);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy년 MM월 dd일 hh시 mm분 ss초");
String result = sdf.format(date);
System.out.println(result);
sdf = new SimpleDateFormat("yyyy-MM-dd a HH:mm:ss");
String result2 = sdf.format(date);
System.out.println(result2);
}
}
※ Calender 클래스
달력을 표현한 클래스이다. 추상클래스이기 때문에 new 연산자를 사용해 인스턴스를 생성할 필요가 없다.
Calender 클래스의 정적메소드인 getInstance() 메소드를 이용하면,
현재 운영체제 설정되어 있는 시간대를 기준으로 한 하위 객체를 받을 수 있다.
import java.util.Calendar;
public class CalendarEx {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
System.out.println(cal.getTime()); //현재 시간을 데이트 타입으로 반환
//현재 객체의 년 월 일 시 분 초
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH) + 1);
System.out.println(cal.get(Calendar.DATE));
System.out.println(cal.get(Calendar.HOUR));
System.out.println(cal.get(Calendar.MINUTE));
System.out.println(cal.get(Calendar.SECOND));
}
}
Random 클래스
Random 클래스는 난수를 얻어내기 위한 다양한 메서드를 제공하며 Math 클래스의 random() 메서드보다
다양한 난수값을 얻을 수 있다.
Random 클래스의 주요 메서드
1. nextBoolean() : boolean 타입의 난수를 리턴(True or False)
2. nextDouble() : double 타입의 난수를 리턴 ( 0.0 <= ~ < 1.0 )
3. nextInt() : int타입 난수를 리턴 ( int 의 범위 )
4. nextInt(Int n) : int 타입 난수를 리턴 ( 범위 : 0 ~ N )
import java.util.Random;
public class RandomEx {
public static void main(String[] args) {
// 랜덤객체는 다양한 난수값을 사용할 수 있습니다.
Random ran = new Random();
int r = ran.nextInt();
System.out.println("모든 정수범위 랜덤값:" + r);
int r2 = ran.nextInt(10); // 0~10미만
System.out.println("0~10미만 랜덤값:" + r2);
double r3 = ran.nextDouble();
System.out.println("0~1미만 실수랜덤값:" + r3);
}
}
728x90
'Programming > Java' 카테고리의 다른 글
[JAVA] API - java.util 패키지 (Collection FrameWork) (0) | 2023.12.07 |
---|---|
[JAVA] API-IO (Input 스트림과 Output 스트림) (1) | 2023.12.06 |
[JAVA] API ( java.lang package ) (0) | 2023.12.04 |
[JAVA] 예외 처리 (0) | 2023.12.01 |
[JAVA] 인터페이스 (Interface) (0) | 2023.11.30 |