[Java] 배열의 복사와 String의 기능

김민범·2024년 10월 8일

Java

목록 보기
4/8

배열의 복사

  • 얕은 복사
    • 주소값을 복사한다는 의미
    • 변수 명은 다르지만 같은 값을 보고있음
int[] a = {1,2,3,4};
int[] b = a;

b[0] = 3;

System.out.println(a[0]);
//	3

위와 같이 b[0] = 3 을 명령했으나 ba 의 주소값만 복사했기 때문에 a[0]의 값도 변함

  • 깊은 복사
    • 배열 내부의 실제 값을 새로운 메모리 공간에 복사
int[] a1 = { 1, 2, 3, 4 };
int[] b1 = new int[a1.length];

for (int i = 0; i < a1.length; i++) {
	b1[i] = a1[i];
}

b1[0] = 3;

System.out.println(a1[0]);
//	1

반복문을 통해 a1 내부의 값을 순회하며 b1에 실제 값을 넣었기 때문에 a1[0]의 값이 유지됨

int[] a = { 1, 2, 3, 4 };
int[] b = Arrays.copyOf(a, a.length);
b[0] = 3;

System.out.println(a[0]);
//	1

Arrays.copyOf 메서드를 활용하면 간단하게 깊은 복사를 할 수 있다.

String 기능

String str = "ABCD";

int strLength = str.length();
System.out.println("strLength = " + strLength);
//	4 : String의 길이

char strChar = str.charAt(1);
System.out.println("strChar = " + strChar);
//	B : String[1]의 값
        
String subStr = str.substring(0, 3);
System.out.println("subStr = " + subStr);
//	ABC : String을 0부터 세번째 전까지 자름

String newStr = "ABCD";
boolean strEquals = str.equals(newStr);
System.out.println("strEquals = " + strEquals);
//	true : String의 비교
        
char[] strCharArr = str.toCharArray();
//	String을 Char 배열로 변환
        
char[] charArr = {'A', 'B', 'C'};
String charArrayString = new String(charArr);
System.out.println("charArrayString = " + charArrayString);
//	ABC : char 배열을 String 으로 변환

0개의 댓글