[Java] 배열 관련 코드예제와 Arrays.toString() / System.arraycopy()

2022. 3. 1. 16:02·TIL/Java
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
'TIL/Java' 카테고리의 다른 글
  • [SIST] Java_days10
  • [Java] char배열과 String 클래스의 변환_new String() / toCharArray()
  • [Java] System.in.read() / System.in.skip() / System.in.available()
  • [SIST] Java_days09
야리니
야리니
오늘보다 내일 더 성장하는 개발자가 되기 위한 야리니 블로그입니다 :)
    반응형
    250x250
  • 야리니
    야리니의 step by step
    야리니
  • 링크

    • GitHub
    • Linkedin
  • 전체
    오늘
    어제
    • 분류 전체보기 (477)
      • TIL (379)
        • Java (97)
        • Kotlin (28)
        • JPA (16)
        • Spring (37)
        • Oracle (22)
        • JDBC (7)
        • Web(HTML, CSS, JS, jQuery) (90)
        • View Template (31)
        • AWS (7)
        • HTTP (7)
        • CS (5)
        • Linux, Unix (2)
        • Python (20)
      • Trouble Shooting(Error) (37)
      • Algorithm (15)
      • Git,GitHub (8)
      • Diary (23)
      • 독서 (9)
      • Etc (6)
        • Mac (1)
        • 학원준비과정 (2)
  • 블로그 메뉴

    • 방명록
    • 태그
  • 공지사항

    • 안녕하세요 :)
  • 인기 글

  • 태그

    oracle
    HTML
    백엔드 개발자
    쌍용교육센터
    CSS
    java
    java기초
    Kotlin
    국비지원학원
    코틀린
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
야리니
[Java] 배열 관련 코드예제와 Arrays.toString() / System.arraycopy()
상단으로

티스토리툴바