[Java] 객체지향 4__배열(array) / ArrayList

쓰옹·2022년 11월 21일
0

📙 Java 잡아🤏

목록 보기
10/25
post-thumbnail

배열

  • 특징
    • 한 번 선언한 배열은 길이 변경 불가

선언

자료형[] 배열이름 = new 자료형[개수];
자료형 배열이름[] = new 자료형[개수];

초기화

선언과 동시에 값이 초기화됨

  • 자료형에 따라
    • 정수: 0
    • 실수: 0.0
    • 객체: null
  • 선언과 동시에 특정 값으로 초기화 가능
    • int[] studentID = new int[] {101, 102, 103};
    • [개수]에 개수를 쓰면 오류가 발생함
    • new int[] 생략 가능
  • 자료형을 먼저 선언하고 초기화하는 경우 new int[] 생략 불가
int[] studentID;
studentID = new int[] {101, 102, 103};




배열 복사하기

  • 방법

    • 기존 배열과 배열 길이가 같거나 더 긴 배열을 만들고 for문을 사용하여 각 요소 값을 반복해서 복사

    • System.arraycopy(src, srcPos, dest, destPos, length)매소드 사용

      매개변수설명
      src복사할 배열 이름
      srcPos복사할 배열의 첫 번째 위치
      dest복사해서 붙여 넣을 대상 배열 이름
      destPos대상 배열 붙여넣기 시작 위치
      lengthsrc에서 dest로 복사할 요소 개수
      public class Main {
        public static void main(String[] args) {
             int[] array1 = {10, 20, 30, 40, 50};
             int[] array2 = {1, 2, 3, 4, 5};
      
             System.arraycopy(array1, 0, array2, 1, 4);
             for(int i = 0; i < array2.length; i++) {
                 System.out.println(array2[i]);
             }
         }
      }
      /*
      1
      10
      20
      30
      40
      */
  • 객체 배열을 복사할 때 기존 인스턴스의 주소값을 복사하므로
    복사되는 배열의 인스턴스 값이 변경되면 복사한 배열에도 영향이 있음.

향상된 for문

for (변수:배열) {
	반복실행문
}
  • 배열의 시작 요소부터 끝 요소까지 실행
public class Main {
    public static void main(String[] args) {
        String[] strArray = {"Java", "Android", "C", "Python"};

        for(String lang : strArray) {
            System.out.println(lang);
        }
    }
}
/*
Java
Android
C
Python
*/




ArrayList

  • 객체 배열 클래스
  • 멤버변수와 메소드 제공

주요 메소드

메소드설명
boolean add(E e)요소 하나를 배열에 추가. E는 요소의 자료형 의미
int size()배열에 추가된 요소 전체 개수 반환
E get(int index)index 위치에 있는 요소 값 반환
E remove(int index)index 위치에 있는 요소 값 제거하고 반환
boolean isEmpty()비어있는지 확인
  • 인텔리제이 편집창에서 ArrayList를 작성하고 Ctrl + 마우스 우클릭하면 해당 클래스 설명을 볼 수 있음

형식

ArrayList<E> 배열이름 = new ArrayList<E>();  //<E>와 같은 형태를 '제네릭'자료형이라고 함
  • <>안에는 사용할 객체의 자료형을 쓰면 됨
  • java.util 패키지에 구현되어 있는 클래스이기 때문에 선언 전에 임포트(import) 해줘야함
    import java.util.ArrayList;





🧐 reference

박은종, 『Do it! 자바 프로그래밍 입문』, 이지퍼블리싱(주)

profile
기록하자기록해!

0개의 댓글