Java - Array

배열에 대해서

Posted by Yan on March 7, 2021

배열

배열 : 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것

배열의 선언

  • 배열을 다루기 위한 참조변수의 선언
  • 타입[] 변수이름; : 배열을 선언 == 참조변수 선언
  • 변수이름 = new 타입[길이]; : 배열을 생성 == 실제 저장공간을 생성

배열의 인덱스

  • 각 요소에 자동으로 붙는 번호
  • 범위는 0부터 ‘배열길이-1’까지

배열의 초기화

  • int[] score = new int[]{50, 60, 70, 90}
  • int[] score = {50, 60, 70, 90}

배열의 출력

  • `System.out.println(Arrays.toString(배열이름));
  • 배열이 [50, 60, 70, 90] 같은 형태로 출력됨
  • charArr인 경우에만 System.out.println(chArr)했을 때 배열의 값이 abcd와 같은 형태로 나옴
  • 다른 타입의 배열은 System.out.println(intArr)했을 때 배열의[I@4e25154f와 같은 형태로 메모리의 주소값이 나옴

배열의 복사

  • Arrays.copyOf() : 인자로 복사할 배열, 복사할 요소의 갯수를 받는다.
  • Array.copyOfRange() : (복사할 배열, to, from)
1
2
3
4
5
int arr = {0, 1, 2, 3, 4};
int[] arr2 = Arrays.copyOf(arr, arr.length); //arr2= [0,1,2,3,4]
int[] arr3 = Arrays.copyOf(arr, 3); //arr3= [0,1,2]
int[] arr4 = Arrays.copyOf(arr, 7); //arr4= [0,1,2,3,4,0,0]
int[] arr5 = Arrays.copyOfRange(arr, 2, 4); //arr5= [2,3]

배열의 정렬

sort()

배열을 오름차순으로 정렬해줌


2차원 배열

  • 테이블 형태의 데이터를 저장하기 위한 배열 (표와 같은 형태)
  • 2차월 배열이 여러개면 3차원 배열이 된다.
  • int[][] score = new int[4][3]과 같은 형태로 선언. 4행 3열의 12개 값을 넣을 수 있는 배열이라는 뜻.
  • 각각의 인덱스는 score[2][0]과 같은 형태로 쓴다. 2행 0열이라는 뜻이다.
  • 2차원 배열 = 1차원 배열의 배열

2차원 배열의 초기화

  • 주로 아래와 같이 표기
1
2
3
4
int [][] arr = {
    {1, 2, 3},
    {4, 5, 6}
}

2차원 배열의 출력

  • System.out.println(Arrays.deepToString(arr)) 라고 쓰면 [[11, 12], [21, 22]] 같은 형태로 나타남

2차원 배열의 비교

  • System.out.println(Arrays.deepEquals(arr1, arr2)) 각각의 배열 인덱스가 일치하는지 비교해준다.

커맨드 라인을 통해 입력받기

  • 커맨드 라인에 입력한 값이 문자열 배열에 담겨서 전달된다.
    • 예) 매개변수를 3개 받는 클래스의 경우, java 클래스이름 매개변수1 매개변수2 매개변수3 이런 식으로 전달된다.
  1. 자바 폴더의 workspace\ch05\bin에 들어가서 주소를 복사한 뒤 cmd창에 넣는다.
  2. 예시와 같이 매개변수를 넣어서 cmd에서 사용할 수 있다.

String 클래스

  1. char[]와 메소드를 결합한 것
  2. 내용을 변경할 수 없다 (readonly) : 문자가 결합하면 해당 문자가 바뀌는 것이 아니라 새롭게 저장되는 것이다.
  3. 주요 메소드
    • char charAt(int index) : 문자열에서 해당 위치에 있는 문자를 반환한다.
    • int length() : 문자열의 길이를 반환한다
    • String substring (int from , int to): 문자열에서 해당 범위의 문자열을 반환한다. (to는 포함 안됨)
    • boolean equals(Object obj): 문자열의 내용이 같은지 확인한다.
    • char[] toCharArray(): 문자열을 문자배열로 변환해서 반환한다.