본문 바로가기
Programming/Java

[JAVA] API - java.util Package

by 공부합시다홍아 2023. 12. 5.
 

[JAVA] API ( java.lang package )

[JAVA] 예외 처리 [JAVA] 인터페이스 (Interface) [JAVA] Final 과 Abstract(추상화) [JAVA] SingleTon Design Pattern [JAVA] 정적 제한자 Static [JAVA] 다형성 [JAVA] 접근 제한자 [JAVA] 패키지와 상속 [JAVA] 객체와 클래스 [JAVA

hong-study.tistory.com

API - java.util 패키지 

java,util 패키지는 자바 프로그램 개발에 보조 역할을 하는 클래스들을 포함하고 있다.
주로 컬렉션 관련 클래스들을 담고있다. 

Java.util 패키지 주요 클래스

  • Arrays : 배열 조작
  • Date : 날짜와 시간 정보를 저장
  • Calendar : 운영체제의 날짜와 시간 
  • Random : 난수를 얻을 때 사용

Arrays 클래스
  1. 1. Arrays 클래스는 배열 조작 기능을 가지고 있다. 
        ▶ 배열의 복사, 항목 정렬, 항목 검색
  2. Arrays 클래스의 모든 메서드는 정적 메스드이므로, 클래스이름으로 바로 사용이 가능하다. 
  3. Arrays 클래스의 주요메서드
    1. binarySearch(배열, 찾는값) : 전체 배열 항목에서 찾는 값이 있는 인덱스를 리턴
    2. copyOf(원본배열, 복사할 배열) : 원본 배열의 0번 인덱스부터 복사할 길이만큼의 인덱스까지 복사
    3. copyOfRange(원본배열, 시작인덱스, 끝인덱스) : 원본 배열의 시작 인덱스에서 끝 인덱스까지 복사한 배열 리턴
      → 시작 인덱스는 포함되지만, 끝 인덱스는 포함되지 않음
    4. sort(배열) : 배열의 전체 항목을 오름차순으로 정렬
    5. 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