학원 수업

20일차 - java '이차원 배열 / ArraryList'

Hiolet 2021. 11. 8. 00:26

 

 

이차원 배열

 

 

평면을 구현하기 위해 이차원 배열을 쓴다.

바둑, 체스, 네비게이션 지도 등을 구현할 때 사용한다.  셋 중에 하나라도 만들 수 있는 날이 오겠지 

 

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

 

 

 

중첩 for문을 사용한다.

i는 행, j는 열을 의미하고 바깥쪽 for문에 있는 i < arr.length는 arr배열의 전체 길이 즉 행 개수 만큼 반복하라는 소리다.

그리고 안쪽 for문에 있는 j < arr[i].length는 arr배열의 행 길이 즉 열 개수 만큼 반복하라는 소리가 된다.

마지막 두 줄은 for문에 쓴 코드와 같은 코드로 오직 개수만을 출력하라는 코드다.

 

 

 

 

코드를 뜯어보면 배열의 구조가 나온다.

 

1 2 3
4 5 6

 

배열을 초기화 할 때 안쪽 중괄호 안에 들어가는 요소의 개수는 열 개수로 서로 같아야 한다.

안쪽 중괄호의 총 개수가 행의 개수가 된다.

 

 

 

 


 

ArrayList

 

다 썼는데 날라가서 기억나는 것만 드문드문 씀

 

ArrayList<클래스명> 배열명 = new ArrayList<클래스명>();

 

배구 한 팀당 경기에서 뛰는 선수 수는 정해져 있다. 그래서 기존 배열 방식으로 쓸 수 있음

그런데 '배구'라는 회사의 직원 수는 정해져 있지 않기 때문에 ArrayList 클래스로 쓰면 된다.

아 진짜 다 썼는데 수정하는건 왜 임시저장이 안 되냐고

 

ArrayList에서 잘 쓰는 메서드 표로 다 만들었는데 다시 만들기 싫다. 에휴

 

boolean add(E e) 요소 추가

int size =length

E get(int index) 인덱스 위치에 있는 요소 값 반환

E remove(int index) 인덱스 위치에 있는 요소 값 제거하고 값 반환

boolean isEmpty 배열이 빈 깡통인지 확인

 

아오 진짜 간만에 술술 글이 써졌는데 ㅅㅂ

 

'배구'라는 회사의 개발팀에 신입이 들어왔다. 그럼 직원 추가해야겠지

 

ArrayList<개발팀> 직원목록 = new ArrayList<개발팀>(); 아오 빡쳐

직원목록.add(new 개발팀("신사원");

for(int i = 0; i < 직원목록.size(); i++){

개발팀 팀A = 직원목록.get(i); 

팀A.showInfo()};

 

이런 구조로 쓴다. 이것도 날릴 순 없어 

 

그니까 매개변수 있는 생성자랑 요소 값 갯고오는 get()메서드 필수라는 소리

 

 

너 ㅅㄲ 때문에 글 날라갔어
너 ㅅㄲ 때문에 글 날라갔어22