본문 바로가기

백엔드 개발자 기록 일람/java 학습 기록

08. Java 2차월 배열과 ArrayList의 기초

저번시간에는 배열을 배웠다. 이번에는 방정식도 아니지만 배열의 2차원 배열에 대해 알아보기로 하자.

 

 

배열은 많은 데이터들을 하나로 묶어서 처리할 때 유용한 자료 구조이다. 데이터는 1차원이 아닌 2차원도 될 수 있다.

자바에서도 다른 언어들과  마찬가지로 2차원 배열을 만들고 사용할 수 있다. 예를 들어 int타입의 2차원 배열을 생성하는 방법은 위와 같다. 위의 문장은 3행 5열의  요소를 가지는 2차원 배열을 선언한 것이다. 2차원 배열을 사용할 때도 인덱스를 사용한다. 첫번째 인덱스는 행의 번호이고 두번째 인덱스는 열의 번호이다. 예를 들어서 1행의 3열의 요소는 s[1][3]이다.

 

2차원 배열을 처리하는 프로그램은 일반적으로 중첩된 루프를 사용한다. 다음의 코드는 2차원 배열에 저장된 값을 화면에 출력한다.

 

2차원 배열의 초기화

  2차원 배열의 초기화도 중괄호를이용한다. 2차원 배열에서는 같은 행의  요소를 중괄호로 붂으면 된다.

1차원 배열의 경우와  마찬가지로 초기화 리스트가 존재하는 경우에는 new연산자를 사용할 필요가 없다. 위의 예제에서 첫번째 행의 요소는 {10, 20, 30{이고 두번째 행운 {40, 50, 60} 세번쨰는 {70, 80, 90{이다.

 

래그드 배열

자바에는 다차원 배열은 "배열의 배열을" 이용하여서 구현된다. 실제로는 다차원 배열은 없고 일차원  배열밖에 없다. 다차원 배열은 1차원 배열 요소에 배열을 저장하는 방식으로 생성된다. 

 

 

래그드 배열을 처리할 떄는 각 행의 length 필드를 이용해 각 행의 길이를 파악해야한다. 행의 갯수는 (배열이름).lenght로 할 수 있다. 래그드 배열은 배열의 초기화로도 생성할 수 있다!

 

 

2차원 배열을 이정도로 정리하고 다음으로 ArrayList를 알아보는 것으로 배열의 기본적인 부분을 마무리하기로 하자.

 

  자바에는 이전의 글 부터 설명한 배열보다 훨씬 사용이 편리한 배열이 있다. 그것이 바로 ArrayList이다. 배열은 기본적으로.. 한번 설명한 적 있듯 배열의 크기를 한번 정하게 되면, 그것이 틀이되어 절대로 변경할  수 없다는 불편함이 있었다. 이것은 실제 코딩환경에서도 상당히 성가신 부분이다. 그래서   자바에서는 ArrayList라는 클래스를 제공하는데, 이 클래스를 사용하면 배열의 크기를 동적으로 변경하면서 사용할 수 있다. 즉 우리가 요소를 추가하면 배열은 자동으로 커지게 된다.

일단 가볍게 ArrayList을 생성하는 코드를 작성해보기로 한다.

간단하게 단어 몇가지를 가지고  ArrayList를 생성해 보았다. 단어들은 String 자료형으로 주어서 ArrayList를 생성한다.

 

list = new ArrayList<>();를 실행하면 비어있는 리스트가 생성된다. 여기에 add()메소드를 호출하여 리스트를 추가할 수 있다.

 

     list.add("HELLO");
     list.add("WORLD");
     list.add("GOOD");
     list.add("BYE");

 

리스트에서 요소를 삭제할 때는 다음과 같이 하면 된다.

list.remove(1); // 1번쨰 요소 삭제

 

정수를  저장하는  ArrayList는 Integer라는 정수형 클래스 이름을 적어주어야 한다.

 ArrayList<Integer> list = new  ArrayList<>();

list.add(1);

list add(56);

 

이것도 마찬가지로 for문을 이용해

 

 

이런 식으로 마음껏 집어넣을 수있다.

'백엔드 개발자 기록 일람 > java 학습 기록' 카테고리의 다른 글

10. Java 클래스와 객체 만들기  (1) 2024.01.09
09. java 객체 지향  (1) 2024.01.08
07. Java 배열  (1) 2024.01.02
06. Java Switch 문과 반복문  (0) 2023.12.28
05. Java If- else 문  (1) 2023.12.27