Math Class
난수의 생성
- 컴퓨터를 통해 발생하는 난수를
수도
난수
(가짜 난수)라 칭한다.
seed값
을 통해 동작하는 알고리즘
이 적용된 것이다.
예제
Random rand = new Random();
public boolean nextBoolean();
public int nextInt();
public int nextint(int bound);
public double nextDouble();
public long nextLong();
public float nextFloat();
문자열의 토큰 구분
- 토큰은 주민등록 번호를 예로 들 수 있다.
- 930823-1065627
- '-' 은 구분자를 의미한다.
- 930823, 1065627은 토큰을 의미한다.
쉽게 말해 구분자를 통해 구분된 한 덩어리를 의미한다.
StringTokenizer
- 첫번째 인자로
문자열
을 전달한다.
- 두번째 인자로
구분자
를 전달한다.
hasMoreTokens()을 통해 토큰의 여부를 확인 후 nextToken()를 호출한다.
두번째 인자로 전달되는 인자를 둘 이상으로 둘 수 있다.
- String Class의 Split()를 사용하면 되는 것 아닌가?
예제 1-1
StringTokenizer st = new StringTokenizer("PM:08:45, ":");
public boolean hasMoreTokens()
public String nextToken()
예제 1-2
public String void main(String[] args){
StringTokenizer st1 = new StringTokenizer("PM:08:45", ":");
while(st1.**hasMoreTokens**())
System.out.println(st1.**nextToken**() + ' ');
System.out.println();
StringTokenizer st2 = new StringTokenizer("12 + 36 - 8 / 2 = 44","+-/=");
while(st2.**hasMoreTokens**())
System.out.println(st2.**nextToken**() + ' ');
System.out.println();
}
PM 08 45
12 36 8 2 44
Array Class의 배열 복사, 복제 Method
copyOf
, copyOfRange
는 복제
의 의미가
내포
되어 있다.
- new를 선언하지 않아도
새로운 배열이 생성이 된다.
arrayCopy
는 복사할 위치
도 존재해야 하며 새로운 배열이 생성되지 않는다.
예제 1-1
public static int[] copyOf(int[] original, int newLength)
-> original에 전달된 배열을 첫 번째 요소부터 newLength의 길이만큼 복사.
public static int[] copyOfRange(int[] original, int from, int to)
-> original에 전달된 배열을 인덱스 from부터 to 이전 요소까지 복사
public static void arraycopy(Object src, int srcPos, Object dest, iny destPos, int length)
-> 배열 src의 srcPos에서 배열 desyt의 destPos로 length 길이만큼 복사.
예제 1-2
public static void main(String[] args){
double [] arOrg = {1.1, 2.2, 3.3, 4.4, 5.5};
double[] arCpy1 = Arrays.**copyOf**(arOrg, arOrg.length);
double[] arCpy2 = Arrays.**copyOf**(arOrg, 3);
for(dobule d : arCpy1)
System.out.println(d + "\t");
System.out.println();
for(dobule d : arCpy2)
System.out.println(d + "\t");
System.out.println();
}
예제 1-3
public String void main(String[] args){
double [] arOrg = {1.1, 2.2, 3.3, 4.4, 5.5};
double [] cpy = new double[3];
System.**arraycopy**(arOrg, 1, cpy, 0, 3);
for(dobule d : cpy)
System.out.println(d + "\t");
System.out.println();
}
인스턴스 저장 배열의 비교
Arrays.equals
- 위 메소드는 각 요소별 저장값을 비교해 같은 경우에만 TRUE를 반환한다.
- Equals가 내용 비교를 하기 위해서는
Overriding
이 필요하다.
- Object Class의
equals
를 Overriding
하지 않으면 참조 값 비교
를 한다.
- Object의 Equals -
참조값 비교
- String Equals -
내용 비교
예제 1-1
예제 1-2