Array(배열)
: 같은 자료형(변수들)의 묶음
: 접근의 요소로 index(번호)로 접근한다
: 변수가 많을 시 하나씩 다 입력하는 것은 비효율적
형식 : 자료형 변수명[ ] = new 자료형[배열의 총수];
new : 동적 할당이라고 보면 된다
staic | heap | static | system |
: 동적변수와 정적변수 모두 staic에 저장된다
: 근데 변수의 value(값)은 다르게 저장된다
: 동적변수의 value는 동일하게 staic에 저장(자동 삭제도 됨)
: 정적변수의 value는 heap에 저장(Grabage Collector(가비지콜렉터)가 자동 삭제해줌)
int array[] = new int[3];
array[0] = 11; // 0, 1, 2 -> index number
array[1] = 12;
array[2] = 13;
System.out.println(array[0]); // 첫번째 데이터 확인
System.out.println(array); // heap이랑 연결된 주소
System.out.println(array.length); // 배열 전체 길이
System.out.println(Arrays.toString(array)); // 배열에 삽입된 데이터 전체 확인
: new int[3] : {0 ,0 ,0} 생성
배열의 초기화
int nArray[] = {10, 20, 30, 40, 50};
System.out.println(Arrays.toString(nArray));
System.out.println(nArray[2]);
System.out.println(nArray.length);
{ } : 초기화
배열에 몇개의 변수를 사용할지 모를 때
int numArray[] = null; // 초기화(null로 채우기)
int length = 5; // 배열 크기 지정
numArray = new int[length]; // 대입
// (null, null, null, null, null)에서 (0, 0, 0, 0, 0)으로 바뀜
numArray[0] = 5;
numArray[2] = 6;
System.out.println(Arrays.toString(numArray));
// 결과 5, 0, 6, 0, 0
배열의 Alias(별명)
int arrayBase[] = {1, 2, 3};
int arrayAlias[] = arrayBase;
arrayAlias[2] = 33;
System.out.println(Arrays.toString(arrayAlias));
// 결과 : 1, 2, 33
System.out.println(Arrays.toString(arrayBase));
// 결과 : 1, 2, 33
: 결과를 보듯 Alias 변수명으로 데이터 값을 변경하여도 원본 변수의 데이터도 변경된다
int myChracterPostionX[] = {1, 2, 3};
int myChPosX[] = myChracterPostionX;
myChPosX[0] = 33;
System.out.println(Arrays.toString(myChracterPostionX));
// 결과 33, 2, 3
: 변수명이 너무 길다! 이럴 때 쓰는거다!
배열 교환
int arrayOne[] = {1, 2, 3};
int arrayTwo[] = {11, 22,33};
int temp[];
temp = arrayOne;
arrayOne = arrayTwo;
arrayTwo = temp;
System.out.println( Arrays.toString(arrayOne));
System.out.println( Arrays.toString(arrayTwo));
: 변수가 3개라서 간단하게 보이지만 실제로(현업에선) 많을 시 복잡하다고 한다
: 저런식으로 사용된다는 흐름 정도 알기
'Java' 카테고리의 다른 글
Java) 조건문 : if, else, else if 정리 (0) | 2024.12.27 |
---|---|
Java) 2차원 배열 사용법(선언 및 초기화 예제 ) (0) | 2024.12.27 |
Java) Calculator 출력 & 편의점 거스름돈 계산 (0) | 2024.12.26 |
Java) String 클래스 메소드 정리 (0) | 2024.12.25 |
Java) 진법 변환 정리 (0) | 2024.12.25 |