import 문을 사용하지 않아도 바로 사용할 수 있는 java.lang 패키지와는 달리 java.util 패키지는 import 문으로 패키지를 불러오고 나서야 클래스 이름만으로 사용할 수 있다.
<aside> ➡️ Arrays 클래스
Arrays 클래스에는 배열을 다루기 위한 다양한 메소드가 포함되어 있습니다. Arrays 클래스의 모든 메소드는 클래스 메소드(static method)이므로, 객체를 생성하지 않고도 바로 사용할 수 있습니다. 이 클래스는 java.util 패키지에 포함되므로, 반드시 import 문으로 java.util 패키지를 불러오고 나서 사용해야 합니다.
Arrays 클래스가 제공하는 메소드
binarySearch() //binarySearch() 메소드는 전달받은 배열에서 특정 객체의 위치를 이진 검색 알고리즘을 사용하여 검색한 후, 해당 위치를 반환합니다. 이 메소드는 이진 검색 알고리즘을 사용하므로, 매개변수로 전달되는 배열이 sort() 메소드 등을 사용하여 미리 정렬되어 있어야만 제대로 동작합니다.
copyOf() //배열 복사
copyOfRange( , ) //배열 특정 영역의 요소만 복사
sort() //배열에 저장되어 있는 값들을 정리
toString() //1차원 배열을 문자열로 반환
deepToString() //다차원 배열을 문자열로 반환
CF. 배열 요소 타입별 기본값
배열 요소의 타입 | 기본값 |
---|---|
char | '\u0000' |
byte, short, int | 0 |
long | 0L |
float | 0.0F |
double | 0.0 또는 0.0D |
boolean | false |
배열, 인스턴스 등 | null |
</aside> |
<aside> ✅ 날짜와 시간 관련 클래스
1995년, JDK1.0에 만들어진 클래스로 초기에 제작되어 부족한 부분이 많았다. 그래서 Date 클래스의 메서드는 거의 deprecated(앞으로 사용하지 않는)되었다. 그러나 1995년, 날짜와 시간을 다룰 목적으로 Date 클래스를 개선시킨 새로운 클래스인 Calendar 클래스와 함께 지금까지도 여전히 쓰이고 있는 클래스들이다.
CF. 2014년, JDK1.8부터 이 클래스들을 보완한 날짜와 시간 관련한 새로운 클래스를 java.time 패키지에서 제공하고 있다.
<aside> ✅ Date 클래스
Date 클래스가 제공하는 메서드
toString() //Date 인스턴스가 갖고 있는 날짜와 시간을 문자열로 변환하여 반환하도록 오버라이딩되어 있다.
</aside>
<aside> ✅ Calendar 클래스
Calendar 클래스가 제공하는 메서드
package chap10;
import java.util.Calendar;
public class CalendarEx1 {
public static void main(String[] args) {
Calendar today = Calendar.getInstance();
//Calendar 클래스는 추상클래스이므로 getInstance()로 Calendar 객체를 생성
//기본적으로 현재 날짜와 시간으로 설정되기 때문에 참조변수명을 today 로 했다.
System.out.println("지금은 몇 년도? " + today.get(Calendar.YEAR) + "년도"); //Calendar.YEAR 는 Calendar 클래스에 정의된 필드를 호출하는 것이다.
System.out.println("지금의 월은? " + (1 + today.get(Calendar.MONTH)) + "월");
System.out.println();
System.out.println("이 해의 몇 번째 주일까? " + today.get(Calendar.WEEK_OF_YEAR) + "번째 주");
System.out.println("이번 달의 몇 번째 주일까? " + today.get(Calendar.WEEK_OF_MONTH) + "번째 주");
System.out.println();
System.out.println("이 달은 몇 일까지 있을까? " + today.getActualMaximum(Calendar.DATE) + "일");
System.out.println("이 달의 몇 번째 일일까? " + today.get(Calendar.DATE) + "번째 일");
System.out.println("이 달의 몇 번째 일일까? " + today.get(Calendar.DAY_OF_MONTH) + "번째 일");
System.out.println("이번 년도의 몇 번째 일일까? " + today.get(Calendar.DAY_OF_YEAR) + "번째 일");
System.out.println();
int yoil = today.get(Calendar.DAY_OF_WEEK);
switch (yoil) {
case 1 :
System.out.println("지금은 몇 요일일까? 일요일"); break;
case 2 :
System.out.println("지금은 몇 요일일까? 월요일"); break;
case 3 :
System.out.println("지금은 몇 요일일까? 화요일"); break;
case 4 :
System.out.println("지금은 몇 요일일까? 수요일"); break;
case 5 :
System.out.println("지금은 몇 요일일까? 목요일"); break;
case 6 :
System.out.println("지금은 몇 요일일까? 금요일"); break;
case 7 :
System.out.println("지금은 몇 요일일까? 토요일"); break;
}
System.out.println();
System.out.println("지금은 몇 시? " + today.get(Calendar.HOUR_OF_DAY) + ":" + today.get(Calendar.MINUTE) + ":" + today.get(Calendar.SECOND));
}
}
</aside>
</aside>
<aside> ✅ Scanner 클래스
J2SE 5.0 부터 Scanner 라는 java.util.Scanner
클래스가 새로 추가되었다. Scanner 클래스를 이용하면 콘솔입력을 보다 쉽게 처리 할 수 있다.
import java.util.Scanner;
public class Sample {
public static void main(String[] args) {
// 1) Scanner 객체 생성
Scanner sc = new Scanner(System.in); //new 연산자는 새로운 객체를 heap 메모리에 할당하겠다는 의미 //System.in은 화면에서 입력을 받겠다는 의미로 입력한 값을 Byte 단위로 읽어주는 자바의 표준 입력 스트림
System.out.println(sc.next()); //next()는 Scanner 객체를 사용하여 입력값을 받는 기능을 하는 Scanner 클래스의 메서드로, 입력받을 데이터 타입에 따라 사용하는 메서드의 종류가 달라진다.
}
}
//이번에는 콘솔 출력에 대해서 알아보자. 우리는 예제들에서 System.out.println 메서드를 계속해서 사용해 왔다. System.out은 PrintStream 클래스의 객체이다. PrintStream은 콘솔에 값을 출력할 때 사용되는 클래스이다. 보통 System.out.println은 콘솔에 문자열을 출력할 경우나 디버깅 시 많이 사용한다. System.err도 있는데 System.out과 동일한 역할을 한다. 다만 System.err는 오류메시지를 출력할 경우에 사용한다.
import java.util.Scanner; // Scanner 클래스 호출
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // Scanner 객체 생성
//기본타입
byte a = sc.nextByte(); // byte 입력
short b = sc.nextShort(); // short 입력
int c = sc.nextInt(); // int 입력
long d = sc.nextLong(); // long 입력
//실수타입
float e = sc.nextFloat(); // float 입력
double f = sc.nextDouble(); // double 입력
//논리타입
boolean g = sc.nextBoolean(); // boolean 입력
//문자열타입
String h = sc.next(); // String 형 입력 (토큰을 기준으로 한 단어를 읽음)
String i = sc.nextLine(); // String 형 입력 (개행을 기준으로 한 줄을 읽음)
//출력문
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
System.out.println(i);
}
}
Scanner 클래스가 제공하는 메서드
next() //String을 받으며 토큰(Token)을 기준으로 읽는다.
nextLine() //String을 받으며 개행(Enter)을 기준으로 읽는다.
nextInt()
nextBoolean()
nextByte()
nextShort()
nextLong()
nextFloat()
nextDouble()
</aside>
<aside> ✅ StringJoiner 클래스
StringJoiner 클래스가 제공하는 메서드
public StringJoiner add( @Nullable CharSequence newElement )
//Adds a copy of the given CharSequence value as the next element of the StringJoiner value. If newElement is null, then "null" is added.
//Params: newElement – The element to add
//Returns: a reference to this StringJoin
</aside>
<aside> ✅ Collections 클래스
Collections 클래스가 제공하는 메서드
sort(List list)
</aside>