본문 바로가기
IT/자바

자바 정리 - 배열, 열거타입

by 김보리 2021. 11. 30.
728x90
반응형

배열

 

배열 : 데이터를 연속된 공간에 나열하고 각 데이터에 인덱스(Index) 부여한 자료구조

  • 같은 타입의 데이터만 저장할 수 있음
  • 한 번 생성된 배열은 길이를 늘리거나 줄일 수 없음 (단점) / ArrayList 사용
  • 인덱스가 0번부터 시작
  • 반복문과 함께 사용

 

배열 변수 선언

 

형식1 형식2
int [ ] intArray; int intArray[ ];
double [ ] doubleArray; double doubleArray[ ];
String [ ] strArray; String strArray[ ];

 

참조할 배열 객체 없는 경우 배열 변수는 null값으로 초기화

ex) 타입[ ] 변수 = null;

 

배열 생성

  1. 값 목록으로 배열 생성 (리터럴)

타입 [ ] 변수 = { 값0, 값1, 값2, 값3, … }; (배열 값 : 배열 형태의 리터럴)

  • 배열 변수 선언한 뒤에는 다른 실행문에서 값 목록으로 배열 생성 불가능
  • 배열 변수 미리 선언한 후 값 목록이 나중에 결정되는 경우
  • new 연산자 사용하여 값 목록 지정
    변수 = new 타입[ ] {값0, 값1, 값2, 값3, … }

 

       2.   new 연산자를 이용해서 배열 생성

  • 타입 [ ] 변수 = null;
    변수 = new 타입[길이]
  • new 연산자로 배열 처음 생성할 때 배열은 자동적으로 기본값으로 초기화
    ex) int[ ] scores = new int[30];
  • 배열 생성 후 특정 인덱스 위치에 새 값 저장

 

배열 길이 : 배열에 저장할 수 있는 전체 요소수
int[] intArray = {10, 20, 30};

int num = intArray.length;

 

명령 라인 입력

  • main( ) 메소드의 String[ ] args 매개변수
  • args에 값을 넣을 경우
    Run - Run Configurations - Arguments - Program arguments에 값 입력
    여러 개 넣을 경우 : abc(공백)abcd(공백)abcde 공백을 넣어 값 여러 개 입력


다차원 배열

 

2차원 배열

  1. 행렬 구조
    int [행(row)] [열(column)] scores = new int[2][3]; 
  2. 구현 방법 : 1차원 배열이 다시 1차원 배열을 참조
    scores.length // 2 (배열 A의 길이)
    scores[0].length; // 2
    scores[1].length; // 3

  3. 계단식 구조
    int [ ] [ ] scores = new int[2][ ];
    scores[0] = new int[2]; {0, 1}
    scores[1] = new int[3]; {0, 1, 2}

 

  1. 값 목록을 이용한 2차원 배열 생성
    타입[ ] [ ] 변수 = { {값, 값2, … }, {값1, 값2, … } };
    그룹 0 값 목록    그룹 1 값 목록
    ex) int[ ] [ ] scores = { {95, 80}, {92, 96, 80} };
          int score = scores[0][0]; -> 95
          int score = scores[1][1]; -> 96
          scores.length -> 2
          scores[1].length -> 3

  2. 배열 복사
  • for문을 이용해서 요소 하나 하나를 복사
  • System.arraycopy( )를 이용한 복사
    System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length);
    ex) System.arraycopy(arr1, 0, arr2, 0, arr1.length);

 

  1. 향상된 for문 : for(타입 변수 : 배열) {...}
  • 배열이나 컬렉션을 좀 더 쉽게 처리
  • 반복 실행 위해 루프 카운터 변수나 증감식 사용하지 않음

for(타입 변수 : 배열) {

실행문

}

 

열거 타입

 

상수 : 변하지 않는 값

  • static final int a = 0; static final을 사용하여 상수처럼 사용

열거 타입 enum(enumeration)

  • 열거 상수(한정된 값)를 저장하는 타입 (한정된 값을 갖는 타입)
  • ex) Week.java
    public enum Week { // 열거 타입 이름
      MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY :열거상수
    }

열거 타입 선언

  • 소스파일(.java) 생성

 

728x90
반응형

댓글