728x90
반응형
1. Arrays.toString() 메서드
ㄱ. 기능 : 배열의 참조변수 값을 String (ex. [1요소 , 2요소, 3요소..])으로 가져오는 기능
* Arrays.toString() 사용하기 위해서는 util을 import 해야한다. > import java.util.Arrays;
2. char[] : 배열은 syso로 출력하면 각 요소가 구분자없이 그대로 출력
3. System.arraycopy() 메서드
ㄱ. 기능 : 배열을 복사하는 기능
ㄴ. 매개변수 : 옮길 배열명, 인덱스, 옮겨지는 배열명, 인덱스, 옮길 배열의 길이(배열명.length)
ex)
import java.util.Arrays;
public class Pr16 {
public static void main(String[] args) {
// 1) Arrays.toString()
int[] sArr = {10, 20, 30, 40, 50};
System.out.println(Arrays.toString(sArr));
// 2) char[] 배열
char[] c = {'a', 'b', 'c', 'd'};
System.out.println(c);
// 3) System.arraycopy()
char[] abc = {'a', 'b', 'c', 'd'};
char[] num = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9'};
char[] Arr = new char[abc.length + num.length]; // 배열 abc와 num을 붙여서 하나의 배열(Arr) 만들기
System.arraycopy(abc, 0, Arr, 0, abc.length);
System.arraycopy(num, 0, Arr, 0, num.length);
System.out.println(Arr);
System.arraycopy(abc, 0, num, 6, 2); // num 배열의 인덱스 6위치에 abc 배열의 0부터 시작해서 2개 복사
System.out.println(num);
} // main
} // class
코드 예제1) 배열 섞기
public class Pr17 {
public static void main(String[] args) {
// 배열 섞기
int[] numArr = new int[10];
for (int i = 0; i < numArr.length; i++) {
numArr[i] = i;
System.out.print(numArr[i]);
}
System.out.println();
for (int i = 0; i < numArr.length; i++) {
int n = (int)(Math.random()*10);
int temp = numArr[0];
numArr[0] = numArr[n];
numArr[n] = temp;
}
for (int i = 0; i < numArr.length; i++) {
System.out.print(numArr[i]);
}
} // main
} // class
코드 예제2) 임의의 값으로 배열 채우기

코드 예제3) 배열의 버블정렬
public class ArrayEx10 {
public static void main(String[] args) {
// 배열의 버블정렬
int[] numArr = new int[10];
for (int i = 0; i < numArr.length; i++) {
System.out.print(numArr[i] = (int)(Math.random() * 10));
} // i for
System.out.println();
for (int i = 0; i < numArr.length-1; i++) {
boolean changed = false; // 자리 바꿈이 발생했는지 체크 > 매 반복문마다 changed를 false로 초기화
for (int j = 0; j < numArr.length-1-i; j++) {
if(numArr[j] > numArr[j+1]) { // 다음 인덱스에 있는 값이 작으면 자리를 바꾼다
int temp = numArr[j];
numArr[j] = numArr[j+1];
numArr[j+1] = temp;
changed = true; // 자리를 바꿨으니 true로
} // if
} // j for
if(!changed) break; // 자리 바꿈이 없으면 반복문을 종료
} // i for
for (int k = 0; k < numArr.length; k++) { // k for문 코드를 두번째 i for문이 끝나기 전에 넣으면 정렬이 되는 순서 확인 가능
System.out.print(numArr[k]);
}// k for
} // main
} // class
코드 예제4) 배열에 담긴 숫자 개수 파악하기
public class ArrayEx11 {
public static void main(String[] args) {
int[] numArr = new int[10];
int[] counter = new int[10];
for (int i = 0; i < counter.length; i++) {
numArr[i] = (int)(Math.random() * 10);
System.out.print(numArr[i]);
} // i for
System.out.println(); // 개행
for (int i = 0; i < counter.length; i++) {
counter[numArr[i]]++;
// counter[numArr[0]]; > ex) numArr[0]의 값은 4
// counter[4]++; > counter[4]의 값을 1 증가 시킨다. (인덱스의 요소에 있는 값을 증가 시킴)
} // i for
for (int i = 0; i < counter.length; i++) {
System.out.println(i + "의 개수 : " + counter[i]);
} // i for
} // main
} // class
> numArr 배열에서 저장된 각 숫자가 몇 번 반복해서 나타나는지를 세어서 counter 배열에 담은 다음에 출력하는 코딩이다. counter 배열에서 numArr 배열에 저장된 값과 일치하는 인덱스의 요소에 저장된 값을 1증가시킨다.
728x90
반응형
'TIL > Java' 카테고리의 다른 글
[SIST] Java_days10 (0) | 2022.03.02 |
---|---|
[Java] char배열과 String 클래스의 변환_new String() / toCharArray() (0) | 2022.03.01 |
[Java] System.in.read() / System.in.skip() / System.in.available() (0) | 2022.02.27 |
[SIST] Java_days09 (0) | 2022.02.25 |
[SIST] Java_days08 (0) | 2022.02.24 |