[Java] Arrays 클래스, Math 클래스
Math Class
난수의 생성
- 컴퓨터를 통해 발생하는 난수를
수도
난수
(가짜 난수)라 칭한다. seed값
을 통해 동작하는알고리즘
이 적용된 것이다.
예제
Random rand = new Random();
public boolean nextBoolean();
public int nextInt();
public int nextint(int bound); //0이상 bound 미만 범위의 int형 난수 반환
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를 선언하지 않아도
새로운 배열이 생성이 된다.
- new를 선언하지 않아도
arrayCopy
는복사할 위치
도 존재해야 하며새로운 배열이 생성되지 않는다.
- 즉, 복사의 의미가 내포되어 있다.
예제 1-1
// Method
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
//Arrays.copyOf
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); //첫번째 요소부터 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
//System.arraycopy
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 -
내용 비교
- Object의 Equals -
- Object Class의
예제 1-1
예제 1-2
Author And Source
이 문제에 관하여([Java] Arrays 클래스, Math 클래스), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@ym1085/Chapter13저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)