본문 바로가기
언어(Language)/Java

[Java] 배열(Array)

by 올리브영 2023. 2. 24.
728x90
반응형

배열이란?


  • 배열의 길이는 고정되어 있다. 
  • 자료형의 집합이다.
  • 기본 자료형 배열은 선언과 동시에 배열의 크기만큼의 메모리가 할당되지만, 객체 배열의 경우엔 요소가 되는 객체의 주소가 들어갈(4바이트, 8바이트) 메모리만 할당되고(null) 각 요소 객체는 생성하여 저장해야 한다.
String[] weeks = new String[7];
weeks[0] = "월";
weeks[1] = "화";
weeks[2] = "수";
weeks[3] = "목";
weeks[4] = "금";
weeks[5] = "토";
weeks[6] = "일";

 

배열의 값 접근


  • 값을 얻으려면 인덱싱을 이용해야 한다.
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println(weeks[3]); // 목

 

배열의 길이


  • 배열의 길이는 length를 이용하여 구한다.
String[] weeks = {"월", "화", "수", "목", "금", "토", "일"};
System.out.println(weeks.length); // 7

 

Arrays의 메소드


  • Arrays 클래스에는 배열을 다루기 위한 다양한 메소드가 포함되어 있다.

Arrays.asList(array)

  • 배열을 ArrayList로 변환해준다.
String[] a = {"a","b","c","d"};
Arrays.asList(a);

 

Arrays.toString(array)

int[] b = {13,42,6,8,1};
System.out.println(Arrays.toString(b)); // [13, 42, 6, 8, 1]

 

Arrays.sort(array) - 오름차순

  • 배열안에 Elements를 정렬할 때 사용된다.
int[] b = {13,42,6,8,1};
Arrays.sort(b);
System.out.println(Arrays.toString(b)); // 오름차순 [1, 6, 8, 13, 42]

 

Arrays.sort(array, reverseOrder()) - 내림차순

int[] b = {13,42,6,8,1};
Arrays.sort(b, Collections.reverseOrder());
System.out.println(Arrays.toString(b)); // 내림차순 [42, 13, 8, 6, 1]

 

Arrays.sort(array, 시작번호, 끝번호)

  • 인덱스의 시작과 끝을 정해 시작번호부터 끝번호-1까지만 오름차순 정렬할 수도 있다.
int[] b = {13,42,6,8,1};
Arrays.sort(b,1,4); 
System.out.println(Arrays.toString(b)); // [13, 6, 8, 42, 1]

 

Arrays.sort(array, 시작번호, 끝번호, reverseOrder()) - 내림차순

String[] a = {"a","b","c","d"};
Arrays.sort(a,2,4, Collections.reverseOrder());
System.out.println(Arrays.toString(b)); // [a, b, d, c]

 

Arrays.copyOf(array, int newlength)

  • 배열을 복사한다.
  • 복사하고자 하는 배열은 새로운 배열의 크기가 들어간다.
int[] b = {13,42,6,8,1};
int[] c = Arrays.copyOf(b, 3); 
System.out.println(Arrays.toString(c));

 

Arrays.equals(array1, array2)

  • 두 개의 배열의 구성이 같은지 같지 않은지 비교
String[] arr1 = { "홍길동", "임꺽정", "박혁거세", "주몽", "고담덕" };
String[] arr2 = { "홍길동", "임꺽정", "박혁거세", "주몽", "고담덕" };
String[] arr3 = { "홍길동", "임꺽정", "박혁거세", "주몽" };

System.out.println("arr1 == arr2 : " + Arrays.equals(arr1, arr2)); // arr1 == arr2 : true

System.out.println("arr1 == arr3 : " + Arrays.equals(arr1, arr3)); // arr1 == arr3 : false

 

728x90
반응형