JAVA/이론

[Java] 6. 배열

katia 2023. 3. 14. 15:33

1. 배열

(1) 배열

  • 같은 타입의 변수를 하나의 묶음으로 관리할 때 사용
  • 한 변수 안에 여러 값을 저장하고자 할 때 사용
  • 저장하려는 값의 자료형이 같아야 하나의 배열에 저장 가능
자료형[] 변수형 = new 자료형[배열크기];

(2) 배열의 선언

  • 배열 참조 변수와 자료형, 크기를 선언
  • 타입 뒤에 대괄호 []를 붙임
  • 예시
// 크기가 10인 int형 student 배열을 선언
int[] student = new int[10];
// String 타입의 name배열을 선언
String[] name;
// 배열에 크기를 부여
name = new String[10];
// 배열의 크기를 변경
name = new String[6];

(3) 배열의 길이와 인덱스

  • 인덱스 : 배열의 공간마다 붙여진 번호
  • 배열의 각각의 공간은 순서대로 번호를 부여 받음
  • 배열의 요소에 접근할 때는 배열의 이름과 인덱스를 사용
  • 인덱스 번호는 0번부터 시작
변수이름[인덱스 번호] = 값;
  • 예시
int[] student = new int[10];
// Error
student = 10;
// 올바른 문장 : 0번 인덱스에 10을 대입
student[0] = 10;

(4) 배열의 초기화

  • 배열에 요소를 넣지 않을시, 숫자 자료형은 0으로, 문자는 null로 초기화됨
1) 자료형 변수명 = new 자료형[] {값1, 값2, ..., 마지막값};
2) 자료형 변수명 = {값1, 값2, ...., 마지막값};
  • 예시
// int형 number 배열을 선언하고자 값을 초기화
int[] number = new int[] {1,2,3};

// char형 c 배열을 선언하고 값을 초기화
char[] c = {'a','b','c'};

// boolean형 check 배열을 선언
boolean[] check;

// boolean형 check 배열을 초기화
check = new boolean[] {true, false};
System.out.println(check[0]);

// boolean형 check 배열을 재초기화
check = new boolean[] {false, false, true};
System.out.println(check[0]);

2. 다차원 배열

(1) 다차원 배열

  • 2차원 이상의 배열으로, 행과 열으로 이루어져 있음
  • 차원을 추가할때는 괄호의 수를 늘림
자료형 변수명 = new 자료형[배열크기][배열크기];
int[][] arr1 = new int[][] {{1,2},{3,4}};

(2) 다차원 배열 예제

  • 반복문 사용
  • 배열명.length : 배열의 길이 확인
int[][] arr1 = new int[][]{{10},{20},{30},{40,41}};
int[][] arr2 = {
    {100, 200, 300},
    {400, 500, 600},
    {700, 800, 900}
};

for(int i = 0; i < arr1.length; i++ ){
    for(int j = 0; j < arr1[i].length; i++){
        System.out.print(arr1[i][j]);
    }
    System.out.println();
}

for(int i = 0; i < arr2.length; i++ ){
    for(int j = 0; j < arr2[i].length; i++){
        System.out.print(arr2[i][j]);
    }
    System.out.println();
}

3. 배열 활용

(1) foreach문

  • 반복가능객체 (문자열, 배열, 딕셔너리 등)에서 요소들을 순환하며 변수에 저장해서 사용
for(자료형 변수이름 : 배열이름){
    실행구문
}
  • 예시
String[] arr = new String[] {"ab", "cd", "abc"};
int[] nums = new int[] {1,2,3,4};

for(int i = 0; i < arr.length; i++){
    System.out.println(arr[i]);
}

for(String s : arr){
    System.out.println(s);
}

for(int s : nums){
    System.out.println(s);
}

(2) ArrayList

  • 배열에서 발전된 형태의 List
  • 요소를 추가하면 0번 인덱스부터 차례대로 요소가 저장됨
  • 해당 요소는 객체가 저장
  • 실행 도중에 배열의 크기를 변경할 수 있는 동적 배열
import java.util.ArrayList;
1) ArrayList<자료형클래스> 변수명 = new ArratList<>();
2) ArrayList 변수명 = new ArrayList();
  • ArrayList 사용시 활용할 수 있는 메소드
    • add(값) : 마지막 요소로 값을 추가
    • add(인덱스, 값) : 인덱스 위치에 값을 추가
    • clear() : 배열요소들을 초기화
    • clone() : 배열을 복사
    • size() : 배열의 크기를 반환
    • contains(값) : 배열에 값이 존재하는지 검사
    • get(인덱스) : 배열의 인덱스에 해당하는 요소를 반환
    • insert(인덱스, 값) : 배열의 인덱스에 해당하는 위치에 해당값을 기입
    • indexOf(값) : 해당 값이 존재하는 배열의 인덱스 위치를 반환
    • remove(인덱스) : 해당 인덱스 위치의 값을 배열에서 제거
    • set(인덱스, 값) : 해당 인덱스 위치의 값을 해당 값으로 변경
    • sort() : 배열을 오름차순으로 정렬

'JAVA > 이론' 카테고리의 다른 글

[Java] 8. 클래스와 객체 Part.2  (0) 2023.03.15
[Java] 7. 클래스와 객체 Part.1  (0) 2023.03.15
[Java] 5. 반복문  (0) 2023.03.14
[Java] 4. 조건문  (0) 2023.03.14
[Java] 3. 연산자와 입출력  (0) 2023.03.13