배열 선언
배열 할당
배열 초기화 : 인덱스,중괄호,for문
배열 삭제 : null
배열 값 출력하는 방법 2가지 : for문, Arrays.toString()
배열 복사 : shallow copy & deep copy
코드 익히기 & 배운 것들
배열 크기 변경 불가(삭제하고 새로 만들기에 주소값이 변경됨)
배열 안 값이 최대길이보다 짧으면 값만큼만 출력되서 나옴(여분공간에 다른값x)
dArr[3] = 3; // 3.0으로 출력 -> 자동형변환(int to double)
초기화 for문 방법은 int만 가능하나, 실수로 형변환 가능한 int면 for문 가능 -> int인 i가 실수로 변환 가능한 수이기에
public void arrayPractice() {
// 배열 선언
// 배열 할당
// 배열 초기화 : 인덱스,중괄호,for문
// 배열 삭제 : null
// 배열 값 출력하는 방법 2가지 : for문, Arrays.toString()
// 배열 복사 : shallow copy & deep copy
//
// 배열 크기 변경 불가(삭제하고 새로 만들기에 주소값이 변경됨)
// 배열 안 값이 최대길이보다 짧으면 값만큼만 출력되서 나옴(여분공간에 다른값x)
// dArr[3] = 3; // 3.0으로 출력 -> 자동형변환(int to double)
// 초기화 for문 방법은 int만 가능하나, 실수로 형변환 가능한 int면 for문 가능 -> int인 i가 실수로 변환 가능한 수이기에
// null인 배열값 확인 시, for문방법은 널포인트익셉션 쓰므로 Arrays.toString() 사용해야함
//배열 선언
String[] arr; // Stack 영역에 공간 생성
//배열 할당
String[] sArr1 = new String[3];
String sArr2[] = new String[3];
// 배열 초기화
// 방법1 : 인덱스
sArr1[0] = "a";
sArr1[1] = "b";
sArr1[2] = "c";
// 방법2 : 중괄호 {} 이용
// 선언과 동시에 초기화
// sArr2 = {"a","b","c"}; // error : 중괄호 타입은 자료형부터 풀로 적어주는 형태에만 가능
String[] sArr3 = {"a","b","c"};
// 방법3 : for문
// 배열이 int타입인 경우만 사용가능
// double로 형변환 가능한 int면 for문 가능할까?
// 가능. int인 i가 실수로 변환 가능한 수이기에
int[] intArr = new int[5];
for(int i=0; i < intArr.length;i++) {
intArr[i] = i + 1;
}
for(int i=0; i < intArr.length; i++) {
System.out.print(intArr[i]+" "); // 1 2 3 4 5
}
// 배열 삭제
intArr = null;
System.out.println(Arrays.toString(intArr)); // null
// 배열 값 출력하는 방법
// 1)for문
// 2)Arrays.toString()
// 1)for문
// int[] baseArr = {1,2,3,4,5};
// for(int i=0; i<baseArr.length;i++) {
// System.out.print(baseArr[i] + " "); // 1 2 3 4 5
// }
// 2)Arrays.toString()
// System.out.println(Arrays.toString(baseArr)); // [1, 2, 3, 4, 10]
/******************************practice 2nd ************************************/
// 배열 선언
char[] cArr;
// 배열 할당
char[] cArr1 = new char[3];
char[] cArr2 = new char[3];
// 배열 초기화(추가)
// 방법1 : 인덱스
cArr1[0] = 'a';
cArr1[1] = 'b';
cArr1[2] = 'c';
// cArr1[3] = 'd';
// System.out.println(Arrays.toString(cArr1));
// 방법2 : 중괄호
char[] cArr11 = {'a','b','c'};
char[] cArr22 = {'ㄱ','ㄴ','다'};
char[] cArr3 = {'a','b','c'};
// 방법3 : for문
// int배열만 사용가능
// char[] cArr4 = new char[4];
// for(int i=0; i < cArr4.length; i++) {
// cArr4[i] = i + 1; // int배열만 사용가능하기에 error : Type mismatch: cannot convert from int to char
// System.out.print(cArr4[i] + " ");
// }
int[] cArr4 = new int[4];
for(int i=0; i < cArr4.length; i++) {
cArr4[i] = i + 1;
System.out.print(Arrays.toString(cArr4)+'\n'); // [1, 0, 0, 0][1, 2, 0, 0][1, 2, 3, 0][1, 2, 3, 4]
}
System.out.println(Arrays.toString(cArr4)); // [1, 2, 3, 4]
// 배열 삭제
cArr4 = null;
System.out.println(Arrays.toString(cArr4));
System.out.println(Arrays.toString(cArr3));
cArr3 = null;
System.out.println(Arrays.toString(cArr3));
System.out.println("===practice 3rd===");
/******************************practice 3rd ************************************/
// 배열 선언
float[] fArr;
float[] floatArr; // Stack 영역에 공간 생성
// 배열 할당
float[] fArr1 = new float[5];
double[] dArr = new double[5];
// 배열 초기화
// 방법 1 : 인덱스
dArr[0] = 0.1;
dArr[1] = 0.2;
dArr[2] = 3.0;
dArr[3] = 3; // 3.0으로 출력 -> 자동형변환
System.out.println(Arrays.toString(dArr));
// 방법2 : 중괄호
double[] dArr2 = {0.1,0.2,0.3};
System.out.println(Arrays.toString(dArr2)); // [0.1, 0.2, 0.3] -> 배열 안 값이 최대길이보다 짧으면 값만큼만 출력되서 나옴(여분공간에 다른값x)
// 방법3 : for문
double[] dArr3 = new double[3];
// double로 형변환 가능한 int면 for문 가능할까?
// 가능. int인 i가 실수로 변환 가능한 수이기에
for(int i=0; i < dArr3.length; i++) {
dArr3[i] = i + 1;
System.out.print(dArr3[i]+" "); // 1.0 2.0 3.0
}
System.out.println();
dArr3 = null;
// for(int i = 0; i < dArr3.length; i++) {
// System.out.println(dArr3); // null인 배열값 확인 시, for문방법은 널포인트익셉션 쓰므로 Arrays.toString() 사용해야함
// }
System.out.println(Arrays.toString(dArr3)); // null
}