반응형
다차원 배열
2차원 이상의 배열을 다차원 배열이라 일컫는다.
지도, 게임 등 평면이나 공간을 구현할 때 많이 사용된다.
EX) 2차원 배열의 접근, 출력 방법은 다중 for문을 사용하는 것이다.
2차원 배열이라면 2중 포문, 3차원 배열이라면 3중 포문을 사용한다.(n차원 배열 -> n중 for문)
아래는 2차원 배열의 요소 접근 방법이다.
package com.kh.dimension;
public class TwoDimension {
public static void main(String[] args) {
int[][]arr ={ {1, 2, 3}, {4, 5, 6} };
for(int i = 0;i<arr.length;i++) {
for(int j = 0; j<arr[i].length;j++) {
//이 부분에서 접근, 출력 가능.
System.out.print(arr[i][j] + " ");
}
System.out.println();
}
}
}
가변 배열
길이가 변할 수 있는 2차원 배열.
//가변 배열
double[][] dArr = new double[2][];
dArr[0] = new double[4];
dArr[1] = new double[] {0.1, 3.3};
for(int i = 0; i<dArr.length;i++) {
for(int j = 0; j<dArr[i].length;j++) {
System.out.print(dArr[i][j] + " ");
}
System.out.println();
}
출력 화면
0.0 0.0 0.0 0.0
0.1 3.3
ArrayList
배열에서 가장 중요한 부분.
기존 배열은 길이를 정하여 선언하므로 사용 중 부족한 경우 다른 배열로 복사하는 코드를 직접 ㅈ구현해야 함.
중간의 요소가 삭제되거나 삽입되는 경우도 나머지 요소에 대한 조정하는 코드를 구현해야 함.
하지만 ArrayList 클래스는 자바에서 제공하는 객체 배열이 구현된 클래스이다.
여러 메서드와 속성 등 사용하여 객체 배열을 편리하게 관리할 수 있다.
가장 많이 사용하는 객체 배열 클래스이다.
ArrayList 클래스의 주요 메서드
메서드 | 설명 |
boolean add(E e) | 요소 하나를 배열에 추가합니다. E는 요소의 자료형을 말한다. |
int size() | 배열에 추가된 요소 전체 개수를 반환한다. |
E get(int index) | 배열의 index 위치에 있는 요소 값을 반환한다. |
E remove(int index) | 배열의 index 위치에 있는 요소 값을 제거하고 그 값을 반환한다. |
boolean isEmpty() | 배열이 비어 있는지 확인한다. |
add 메서드 같은 경우 배열의 길이와 관계없이 객체를 추가할 수 있다.
ArrayList 클래스 활용하기
ArrayList 기본 형신 선언 방법은 아래와 같다.
ArrayList<E> 배열_이름 = new ArrayList<>();
이전에 썼던 다른 패키지의 객체 리스트 Book을 사용하여 ArrayList 객체 배열을 생성하고 객체에 접근해서 내용을 출력해 보자.
추가로 위에 있는 메소드들도 사용해 보자.
package com.kh.arraylist;
import java.util.ArrayList;
import com.kh.objectarray.Book;
public class ArrayListTest {
public static void main(String[] args) {
ArrayList<Book> library = new ArrayList<>();
library.add(new Book("태백산맥", "조정래"));//add()는 객체 리스트에 인스턴스를 추가한다.
library.add(new Book("데미안", "헤르만 헤세"));
library.add(new Book("토지", "박경리"));
for(int i = 0;i<library.size();i++) {//size()는 ArrayList의 요소의 개수를 갖고올 수 있다.
Book book = library.get(i);//i 번째 index의 요소를 갖고와서 book에 대입한다.
book.showBookInfo();
}
System.out.println();
System.out.println("========향상된 for문 사용========");
for(Book book:library) book.showBookInfo();
System.out.println();
library.remove(1); //매개변수는 index. index의 요소를 제거한다.
for(Book book:library) book.showBookInfo();
System.out.println();
System.out.println(library.isEmpty());//library 객체 리스트가 비어있는지 확인 가능하다.
library.remove(0);
library.remove(0);
System.out.println(library.isEmpty());//library 객체 리스트가 비어있는지 확인 가능하다.
}
}
반응형
'교육 | 외부활동 > 이론_JAVA' 카테고리의 다른 글
KH자바수업_9_다형성 (0) | 2022.11.14 |
---|---|
KH자바수업_8_상속 (0) | 2022.11.14 |
KH자바수업_6_배열 (0) | 2022.11.10 |
KH자바수업_5_클래스와 객체 2 (0) | 2022.11.09 |
KH자바수업_4_생성자 (0) | 2022.11.09 |