언어 공부 내용 정리/Java

구름에듀 생활코딩 자바 13강

wosrn 2023. 5. 21. 20:45

배열

  • 배열(array)은 연관된 데이터를 모아서 관리하기 위해 사용하는 데이터 타입이다. 
  • 기본 데이터타입이 아닌 참조형 데이터타입이다
  • 배열은 같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스를 부여해 놓은 자료구조이다. 
  • 같은 타입의 데이터들이 순차적으로 저장된다
  • 반복문을 이용하여 처리하기에 적합하다
  • 정수 등의 일반적인 자료형 뿐만 아니라 클래스를 통해 만든 객체 등도 배열로 만들 수 있다
  • 배열에 담긴 각각의 데이터는 원소(element)라고 한다
  • 한계  : 초기화할 때 크기가 정해지기 때문에 정해진 크기 이상의 값을 넣을 수 없음 -> 컬렉션 ! (뒤에 배움)

배열 선언

      • int intArray[]; 혹은 int [] intArray; (배열 레퍼런스 변수(intArray)를 생성한 것이고, 배열은 아직 생성 안된상태)
      • 선언된 배열변수에 배열 생성 : intArray = new int[10];
      • 선언과 동시에 생성 : int [] intArray = new int[10]; (타입 [] 레퍼런스 이름 or 타입 레퍼런스 이름 [] = new 타입[크기])
      • 배열 선언과 초기화 동시에 : int [] intArray = {0,1,2,3,4,5,6,7,8,9};
      • 하나의 배열을 다수의 레퍼런스 변수가 참조할 수 있다 (int intArray = new int[10]; -> int myArray[] = intArray
      • 배열을 선언하면 스택 메모리에 변수의 공간만 생성하고, 공간 안은 비운 채로 둔다. 아직 배열의 객체를 생성하지 않았기 때문
      • 스택 메모리에 있는 참조 자료형 변수의 빈 공간을 초기화할 때는 null값을 사용할 수 있으며, null값은 힙 메모리의 위치(번지)를 가리키고 있지 않다는 의미, 즉 연결된 실제 데이터가 없다는 것을 의미한다

 

배열의 크기 : length 필드

  •  .length는 배열에 실제 담긴 데이터의 숫자를 의미하는게 아니라 배열을 처음 생성할 때 지정한 배열의 크기를 의미한다는 점을 주의

for-each 문

  • 배열의 내용을 탐색할 때 for문을 더 간편하게 사용할 수 있는 방법
  • for(자료형 변수명:루프형 객체(배열,리스트 등) {  //TODO }  형식으로 작성함

  • 배열 members의 값을 변수 e에 담아서 중괄호 안으로 전달해준다
  • 반복문의 종료조건, 종료조건을 위해 기준값을 증가시키는 등의 반복적인 값을 내부적으로 감춘 것
  • 장점 : ArrayIndexOutOfBoundExcaption(존재하지 않는 인덱스를 사용하려고 했을 때 발생하는 오류메세지) 방지
  • index에 접근하고자 한다면 따로 인덱스 변수를 선언해서 접근하면 됨

 

이차원 배열

  • 자료형 참조변수이름 [][]; 혹은 자료형 [][] 참조변수이름; 으로 선언 
  • 첫번째 []는 행(층), 두번째 []는 열(방)
  • 선언과 동시에 배열 생성하는 법 :int [][] intArray = new int[2][5]; 과 같은 형식으로 선언 

이차원 배열의 length

  • 참조변수이름.length -> 2차원 배열의 행의 개수
  • 참조변수이름[n].length -> n번째 행의 열의 개수

 

비정방형 배열

  • 각 행의 열의 개수가 다른 배열
  • 비정방형 배열의 생성 :Int i[][];   //배열변수 i 선언 ->i = new int [4][]; //선언된 배열변수에 배열 생성
  • 층 생성 후 각 층마다 방(열) 생성 :   i[0] = new int [1] : 0번째 줄에 1개의 방 생성
  • 생성과 동시에 초기화 : int [][] intArray = { {10,11,12}, {20,21}, {30,31,32}, {40,41}};