일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 코딩부트캠프후기
- java list 저장
- 격파르타후기
- 항해15기
- 노베이스부트캠프
- 비전공자sqld
- java set 출력
- java참조자료형
- 프로그래머스제일작은수
- java list 출력
- java map
- java 자료구조 활용
- 격파르타합격후기
- java기본자료형
- javaJVM
- java최솟값구하기
- 작은수제거하기
- java map 저장
- sqld자격증합격
- 프로그래머스
- javaJRE
- java알고리즘
- 격파르타장점
- 컴파일
- java set 저장
- java알고리즘문제풀이
- 항해99후기
- 격파르타비전공자
- 인터프린터언어
- java map 출력
- Today
- Total
코딩과 결혼합니다
얕은 복사, 깊은 복사, String 배열 본문
Java 프로그래밍에서 여러개의 변수를 같은 곳에 모아서 저장하고 싶을때 기본적으로는 "배열" 이라는 변수에 저장한다.
배열
선언 ( [ ] )
= 보통 타입 [ ] 변수 :
ex. int[ ] intArray; 또는 int intArray[ ];
생성 ( new [ ] )
= 배열은 참조형 변수들처럼 new 명령을 통해서 생성하며, 대괄호 [ ] 안에 크기를 지정해준다.
* 순번은 0부터 시작. 0~7 (길이 = 8)
*배열은 참조형 변수이기 때문에 실제 값을 담지 않고 실제 값의 주소값을 저장
//배열 생성후 초기화하면 배열의 주소가 할당된다.
int[] intArray = new int[3]; // 초기값 {0,0,0}
boolean[] boolArray = new boolean[3]; // 초기값 {false, false, false}
String[] stringArray = new String[3]; // 초기값 {"","",""}
//배열 선언만 해놓고 나중에 초기화를 시킬수도 있다.
int[] intArray2;
intArray2 = new int[3]; // 초기값 {0,0,0}
순회 ( [ i ] )
=배열 안에 담겨있는 변수들을 하나씩 꺼내서 사용하는 것
배열 단건조회
// 배열에서 2번쨰 순번의 값을 출력해본다. (0부터 순번이 시작하므로 2번째 순번은 1)
System.out.println(intArray[1]);
// 출력
0
배열 순회 (반복문 for)
// 배열이 초기화된 값을 출력해본다.
for(int i=0; i<intArray.length; i++) { // .length 는 배열의 길이
System.out.println(intArray[i]);
}
// 출력
0
0
0
초기화 ( ={...} )
1. 중괄호{} 를 사용해서 초기화
String[] stringArray = {"a", "b", "c", "d"};
2. 반복문 for문을 사용해서 초기화 (또는 향상된 for문)
for (int i = 0; i < intArray.length; i++) {
intArray[i] = i;
}
//2-2. 향상된 for문을 통한 배열 출력
for (int i : intArray) {
System.out.print(i); // 01234
}
3. Arrays.fill 메소드를 사용해서 초기화 (Arrays 클래스는 Java 에서 기본으로 제공하는 메소드가 담긴 클래스)
Arrays.fill(intArray, 1);//배열의 모든 값을 1로 초기화
for (int i : intArray) {
System.out.print(i); // 11111
}
복사 ( .clone() )
얕은 복사 : 주소값만 복사되고 실제값은 1개로 유지되는걸 얕은 복사
int[] b = a; // 얕은 복사
깊은 복사 : 진짜 새로운 배열을 똑같이 만들고 싶을때 깊은 복사
int[] b = new int[a.length];
for (int i = 0; i < a.length; i++) {
b[i] = a[i]; // 깊은 복사
}
깊은 복사 메서드
int[] a = { 1, 2, 3, 4 };
int[] b = a.clone(); // 가장 간단한 방법입니다.
// 하지만, clone() 메서드는 2차원이상 배열에서는 얕은 복사로 동작합니다!!
// 2. Arrays.copyOf() 메서드
int[] a = { 1, 2, 3, 4 };
int[] b = Arrays.copyOf(a, a.length); // 배열과 함께 length값도 같이 넣어줍니다.
String 배열
선언, 생성, 초기화
String 배열 선언과 생성
String 배열의 초기화
// 선언 후 하나씩 초기화 할 수 있습니다.
String[] stringArray = new String[3];
stringArray[0] = "val1";
stringArray[1] = "val2";
stringArray[2] = "val3";
// 선언과 동시에 초기화 할 수 있습니다.
String[] stringArray1 = new String[]{"val1", "val2", "val3"};
String[] stringArray2 = {"val1", "val2", "val3"};
String 기능 활용 (= char 배열)
- char 배열은 “문자배열”이고 String은 문자열
- String = char[]
char 배열에는 없는 String 만 가지고 있는 기능
'2세 > Java' 카테고리의 다른 글
230622 - 자료구조 공부(ArrayList, LinkedList) + 알고리즘 시험 (0) | 2023.06.22 |
---|---|
Java 입력/출력 ( Scanner.in / Println() ) (0) | 2023.06.12 |
[Java 문법 종합반] 3주차 : 객체 생성과 참조형 변수, 필드 (0) | 2023.05.27 |
[Java 문법 종합반] 3주차 : 클래스 설계 (0) | 2023.05.27 |
[Java 문법 종합반] 3주차 : 객체지향 프로그래밍 (0) | 2023.05.26 |